[問題]矩陣內根據元素值的不同套用不同公式

看板MATLAB作者 (時間藝術-阿桂)時間10年前 (2014/01/13 16:42), 編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/1
請問各位高手~ 在一個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)

01/13 17:25, , 1F
用判斷式挑出你要的矩陣 然後用矩陣去運算 這樣呢?
01/13 17:25, 1F

01/13 17:31, , 2F
K大~我不太了解你的意思>"<
01/13 17:31, 2F

01/13 17:32, , 3F
我是要在一個矩陣內挑出不同範圍的元素值,分別作不同
01/13 17:32, 3F

01/13 17:32, , 4F
的運算,最後再把這些變動後的元素合成一個新的矩陣這樣
01/13 17:32, 4F

01/13 20:52, , 5F
R(A>1)=(A(A>1).*2-1).*pi
01/13 20:52, 5F

01/13 20:56, , 6F
the other cases is similarly treated
01/13 20:56, 6F

01/14 11:09, , 7F
兩行就解決我的問題了~~M大好厲害~謝謝你~~
01/14 11:09, 7F

01/14 11:10, , 8F
這個方法在help裡面找的到嗎??我想了解多一點~~
01/14 11:10, 8F

01/14 11:20, , 9F
R=(heaviside(A-1).*(A*2-1)+heaviside(1-A).*(A/2-1))*pi
01/14 11:20, 9F

01/14 11:20, , 10F
R(isnan(R))=1;
01/14 11:20, 10F
文章代碼(AID): #1IqwRlfy (MATLAB)