MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 391|回复: 7|关注: 0

[已解决] 如何读取矩阵某条直线上的元素

[复制链接]

新手

15 麦片

财富积分


050


14

主题

42

帖子

0

最佳答案
例如一个10*10的矩阵,如何读取(2,3)这个点从左上角到右下角这条直线上的元素呢?多谢

入门

149 麦片

财富积分


50500


37

主题

372

帖子

30

最佳答案
QQ
  • 关注者: 9
发表于 2017-5-17 21:48:30 | 显示全部楼层
左上角和右下角坐标知道后  求出直线就能算了啊

新手

15 麦片

财富积分


050


14

主题

42

帖子

0

最佳答案
 楼主| 发表于 2017-5-17 22:08:02 | 显示全部楼层
ylc5177146 发表于 2017-5-17 21:48
左上角和右下角坐标知道后  求出直线就能算了啊

多谢,能说具体一点么,坐标都知道,但不知道怎样一次性(不用循环)读取这些元素

论坛优秀回答者

权威

5028 麦片

财富积分



5

主题

6403

帖子

1151

最佳答案
  • 关注者: 246
发表于 2017-5-18 07:23:17 | 显示全部楼层
本帖最后由 jingzhaos 于 2017-5-18 07:25 编辑
Prokrustes 发表于 2017-5-17 22:08
多谢,能说具体一点么,坐标都知道,但不知道怎样一次性(不用循环)读取这些元素 ...
  1. a=rand(10);
  2. [m,n]=size(a);
  3. ind=sub2ind([m,n],2,3);
  4. a(ind+(m+1)*(-1:n-3))
复制代码

入门

171 麦片

财富积分


50500


0

主题

269

帖子

37

最佳答案
  • 关注者: 2
发表于 2017-5-18 08:58:05 | 显示全部楼层 |此回复为最佳答案
Prokrustes 发表于 2017-5-17 22:08
多谢,能说具体一点么,坐标都知道,但不知道怎样一次性(不用循环)读取这些元素 ...

diag(a,(3-2));

论坛优秀回答者

权威

5028 麦片

财富积分



5

主题

6403

帖子

1151

最佳答案
  • 关注者: 246
发表于 2017-5-18 09:24:49 | 显示全部楼层

竟然忘了用diag。

入门

171 麦片

财富积分


50500


0

主题

269

帖子

37

最佳答案
  • 关注者: 2
发表于 2017-5-18 09:42:10 | 显示全部楼层

大神那个代码非常强大,也很简洁,可以用来理解diag的内在原理。

新手

15 麦片

财富积分


050


14

主题

42

帖子

0

最佳答案
 楼主| 发表于 2017-5-19 18:49:49 | 显示全部楼层
江海小舟 发表于 2017-5-18 09:42
大神那个代码非常强大,也很简洁,可以用来理解diag的内在原理。

非常感谢两位! 如果是对于3维的tensor,希望取出(2,3)对角线上的点对应的第三维上所有的元素,有没有好的方法呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表