1

在 matlab 中,我有一个随机数在 0 到 100 之间的矩阵。所有低于 10 的数字都应乘以 2。

testmatrix = [1,2;11,90] 应该变成 [2,4;11,90]

对矩阵执行条件操作很容易,但是如何引用右侧的当前元素呢?

测试矩阵(测试矩阵<10)=???*2

4

3 回答 3

4

与左侧完全相同的方式:

testmatrix(testmatrix<10) = testmatrix(testmatrix<10)*2

或者正如Amro指出的那样,您可以通过创建可重用的逻辑索引掩码来节省计算量:

idx = testmatrix < 10
testmatrix(idx) = testmatrix(idx)*2

第二种方法在条件更复杂或条件重复多次或速度是主要问题的情况下特别有用

于 2013-04-22T08:19:54.650 回答
3

你需要的是:

testmatrix(testmatrix < 10) = testmatrix(testmatrix < 10)*2;
于 2013-04-22T08:19:59.820 回答
0

这个怎么样:

A = 兰迪(100,1000,1);

条件 = A <= 10;

测试 = A(cond).*2

于 2013-04-22T08:20:20.383 回答