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