作者jeffppp (烦..)
看板MATLAB
标题Re: [讨论] 请问矩阵搜寻问题
时间Sun Nov 17 19:10:54 2013
※ 引述《garnett0512 (贾奶)》之铭言:
: 我有一个矩阵
: 9 6 5 6
: 3 2 1 5
: 0 6 0 0
: 5 3 0 8
: 4 5 8 1
: 我想要找寻右下角1的对角线非0的值,也就是6和3,
: 但我只需要最接近的,所以答案是6
: 想请问各位高手要怎麽解决 谢谢
你的矩阵是固定长怎样吗?
若以你的举例来说
可以在最左边补上一排0
假设你矩阵为a
b=zeros(5);
b(:,2:end)=a;
c=b(logical(eye(5)));
[x,y,z]=find(c); % x,y是非0座标 z是非0的值
剩下的自己应该就可以了吧
至於要反过来的
就改在右边补0
然後把对角线的矩阵翻转一下
flipdim(eye(5),1)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.129.112.16
1F:推 profyang:很酷的方法@@ 学到一课了还可以用logical 不过你这样後面 11/17 20:36
2F:→ profyang:C还是5*5 而我的方法是只剩下对角线 11/17 20:36
3F:→ jeffppp:用logical 的用意就是为了只取出对角线 11/17 20:56
4F:→ jeffppp:而且其实diag 就好了 刚刚脑残用这麽麻烦的方式..... 11/17 20:58
5F:推 profyang:原来有这function!! 11/17 21:01