oactve:根据简单条件修改每个元素

时间:2017-12-23 22:14:32

标签: octave

这里是新的八度音阶。

我有一个矩阵X,想要更改所有元素(作为数字),如下所示:如果元素的值大于10,则将其更改为10,否则保持相同的值。

理论上我可以做两个循环并遍历每个元素。不知道有没有一种简单的方法可以做到这一点。

2 个答案:

答案 0 :(得分:6)

使用logical indexing

,可以非常简单,高效地完成此操作
A(A>10) = 10;

另一个选择是使用min功能:

A = min(A,10);

答案 1 :(得分:0)

修改

我认为这样做的惯用方法是使用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