作者ivyviolin (時間藝術-阿桂)
看板MATLAB
標題[問題]矩陣內根據元素值的不同套用不同公式
時間Mon Jan 13 16:42:21 2014
請問各位高手~
在一個A(k,1)[k可為任意值]的矩陣裡面,如果我要做一個根據元素值的不同
來代入不同的運算式的動作
比如說
以 1 做為參考點 比 1 大的元素要使用A公式,比 1 小的要使用B公式
除了用 if else 判斷式跟 for 迴圈以外~有沒有甚麼比較快速的方法呢~?
我把我的code打上來好了~
for z=1:1:10^8
if A(z,1)>1;
R(z,1)=(A(z,1).*2-1)*pi;
else if A(z,1)<1;
R(z,1)=(A(z,1)./2-1)*pi;
else R(z,1)==A(z,1);
end
end
end
聽說matlab用迴圈不太好.....
可是以我的笨腦袋只想的到迴圈T.T
所以特地來版上問各位高手有沒有不一樣的做法可以更快更方便的~
※ 編輯: ivyviolin 來自: 140.117.163.68 (01/13 16:44)
1F:推 kurt28:用判斷式挑出你要的矩陣 然後用矩陣去運算 這樣呢? 01/13 17:25
2F:→ ivyviolin:K大~我不太了解你的意思>"< 01/13 17:31
3F:→ ivyviolin:我是要在一個矩陣內挑出不同範圍的元素值,分別作不同 01/13 17:32
4F:→ ivyviolin:的運算,最後再把這些變動後的元素合成一個新的矩陣這樣 01/13 17:32
5F:→ math99:R(A>1)=(A(A>1).*2-1).*pi 01/13 20:52
6F:→ math99:the other cases is similarly treated 01/13 20:56
7F:→ ivyviolin:兩行就解決我的問題了~~M大好厲害~謝謝你~~ 01/14 11:09
8F:→ ivyviolin:這個方法在help裡面找的到嗎??我想了解多一點~~ 01/14 11:10
9F:→ ejialan:R=(heaviside(A-1).*(A*2-1)+heaviside(1-A).*(A/2-1))*pi 01/14 11:20
10F:→ ejialan:R(isnan(R))=1; 01/14 11:20