oactve:根据简单条件修改每个元素
oactve: modify each element according to a simple condition
这里是八度的新手。
我有一个矩阵 X,想像这样更改所有元素(作为数字):如果元素的值大于 10,则将其更改为 10,否则,保持相同的值。
理论上我可以做两个循环并遍历每个元素。想知道是否有一种简单的方法可以做到这一点。
编辑:
我看起来像惯用的方法是使用 logical indexing:
A(A>10)=10
使用Function Application (@arrayfun
):
> A=[10, 20, 30; 9, 13, 8]
> arrayfun (@(x) ifelse (x>10, 10, x), A)
ans =
10 10 10
9 10 8
使用 logical indexing:
可以非常简单、高效地完成此操作
A(A>10) = 10;
另一种选择是使用min
函数:
A = min(A,10);
这里是八度的新手。
我有一个矩阵 X,想像这样更改所有元素(作为数字):如果元素的值大于 10,则将其更改为 10,否则,保持相同的值。
理论上我可以做两个循环并遍历每个元素。想知道是否有一种简单的方法可以做到这一点。
编辑:
我看起来像惯用的方法是使用 logical indexing:
A(A>10)=10
使用Function Application (@arrayfun
):
> A=[10, 20, 30; 9, 13, 8]
> arrayfun (@(x) ifelse (x>10, 10, x), A)
ans =
10 10 10
9 10 8
使用 logical indexing:
可以非常简单、高效地完成此操作A(A>10) = 10;
另一种选择是使用min
函数:
A = min(A,10);