看板 MATLAB 關於我們 聯絡資訊
請問各位高手~ 在一個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)
kurt28:用判斷式挑出你要的矩陣 然後用矩陣去運算 這樣呢? 01/13 17:25
ivyviolin:K大~我不太了解你的意思>"< 01/13 17:31
ivyviolin:我是要在一個矩陣內挑出不同範圍的元素值,分別作不同 01/13 17:32
ivyviolin:的運算,最後再把這些變動後的元素合成一個新的矩陣這樣 01/13 17:32
math99:R(A>1)=(A(A>1).*2-1).*pi 01/13 20:52
math99:the other cases is similarly treated 01/13 20:56
ivyviolin:兩行就解決我的問題了~~M大好厲害~謝謝你~~ 01/14 11:09
ivyviolin:這個方法在help裡面找的到嗎??我想了解多一點~~ 01/14 11:10
ejialan:R=(heaviside(A-1).*(A*2-1)+heaviside(1-A).*(A/2-1))*pi 01/14 11:20
ejialan:R(isnan(R))=1; 01/14 11:20