【发布时间】:2012-11-11 17:34:14
【问题描述】:
如何迭代矩阵并在条件下更改值..例如: 我有大小为 100x100 的矩阵 m,我正在做:
m(m<10)=func(elemnt);
元素应该是迭代时的当前元素。如何访问当前元素??
【问题讨论】:
标签: matlab
如何迭代矩阵并在条件下更改值..例如: 我有大小为 100x100 的矩阵 m,我正在做:
m(m<10)=func(elemnt);
元素应该是迭代时的当前元素。如何访问当前元素??
【问题讨论】:
标签: matlab
尝试简单
m(m<10)=func(m(m<10));
示例:
m=[[1 2 3];[5 6 7];[8 9 10]]
m =
1 2 3
5 6 7
8 9 10
m(mod(m,3)==2) = m(mod(m,3)==2) * 5
m =
1 10 3
25 6 7
40 9 10
唯一的限制是您的自定义函数可以处理向量。
【讨论】:
c=m<10; m(c) = func(m(c));,但不能缓存表达式 m(c),因为该表达式是从左侧和右侧计算的:它既可以读取也可以写入。
c=m<10;,因为您更改了值并且可能不想重新计算更改值的约束(m(ii) 可能是<10 并且在应用func 之后,可能是>10)