[问题]矩阵判断

楼主: BKD858 (Pz)   2015-07-09 16:08:42
您好
我有一个矩阵
简化为
12 25
14 54
16 -14
54 -47
57 22
61 44
74 -50
. .
. .
. .
现在我想把判断第二行小于0的值加上360
并输出为
12 25
14 54
16 346
54 313
57 22
61 44
74 310
.
.
.
不想用if(矩阵极大),想问问看有没比较快的矩阵方法
麻烦大家了
作者: s4300026 (s4300026)   2015-07-09 17:44:00
find?
楼主: BKD858 (Pz)   2015-07-09 17:46:00
find完加上360后要怎么回归成原本的排序方式
作者: celestialgod (天)   2015-07-09 17:53:00
假设m是你的矩阵m(1, m(:, 2)<0)=m(1, m(:, 2)<0)+360更正m(:, m(:, 2)<0)=m(:, m(:, 2)<0)+360
楼主: BKD858 (Pz)   2015-07-09 18:05:00
谢谢!但现在出现Index exceeds matrix dimensions维数错误
作者: s4300026 (s4300026)   2015-07-09 18:22:00
find是找矩阵index,不影响排序阿...
楼主: BKD858 (Pz)   2015-07-09 18:32:00
请问可以在解释详细一点 目前卡在加完360后如何排回去原本矩阵中QQ 试出来了 a(find(a>0))=a(a<0)+360....
作者: sunev (Veritas)   2015-07-09 23:35:00
如果是角度问题,用mod可能直接一点m(:,2)=mod(m(:,2),360)
作者: anticrime (黑熊)   2015-07-10 10:40:00
可以试试看这样,假设矩阵为AA(:,2) = A(:,2)+(A(:,2)<0)*360;这样<0的部分就会+360了
作者: celestialgod (天)   2015-07-10 12:01:00
我的可以啊,你的维度是不是2 X N不是 n X 2你的find那个要注意 如果第一行有负的也会变成正没办法应对只想改部分矩阵的情况
楼主: BKD858 (Pz)   2015-07-10 16:08:00
嗯我知道!我第一排原始资料是时间序列!所以OK 是N*2感谢各位先进!小弟受益匪浅~
作者: name0625 (lawpy)   2015-07-14 20:22:00
如果矩阵为A B=(A<0)*360; A=A+B; 如果第一行会出现<0眼残没看到有人回...

Links booklink

Contact Us: admin [ a t ] ucptt.com