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);