將一excel資料取出後
經指令我得到一個10*10000的矩陣data
然後如果我要考量特定條件
譬如我先找出data(:,2)<0的情況
然後直接將原矩陣data
data(:,10)值做改變(乘兩倍或轉為負數)
我要怎麼做修改呢?
一個5*5矩陣G
1 2 3 4 8
1 -2 3 9 0
4 7 0 2 7
3 -2 9 8 2
2 3 7 4 1
和同列它行比較
因為G_22和G_42小於0
所以G_24和G_44要修正為原值相反數
其它不變 則新矩陣為
1 2 3 4 8
1 -2 3 -9 0
4 7 0 2 7
3 -2 9 -8 2
2 3 7 4 1
類似這樣
作者:
sppmg (sppmg)
2018-05-05 00:56:00if any(d(:,2)<2) d(:,10)=…; end
這我試過 但沒成功 我要的結果是 當d(2,2)<0那 原本d(10,2)=-d(10,2)
作者:
sppmg (sppmg)
2018-05-05 03:33:00喔,抱歉,打錯,是 all 不是 any
還是無法耶 是否是d(:,10)=-d(:10)的問題因為d(:10)是指原本整行?
作者:
sunev (Veritas)
2018-05-05 09:24:00d(d(:,2)<0,10) = -d(d(:,2)<0,10);
最後我使用[a b]=find(d(:,2)<0); d(a 3)=-d(a -3);上面的方法還是都只能改變整列值
作者:
sunev (Veritas)
2018-05-09 03:38:00我的方法應該是沒有問題的....?
sunev的方法應該可行 你的怎會有index是負的?記得以前寫的時候Matlab內建都會提醒我有find都改成sunev那樣比較快