[問題]矩陣判斷

作者: 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