在matlab中,我有一个矩阵,随机数在0到100之间。 低于10的所有数字都应乘以2。
testmatrix = [1,2; 11,90] 应该变成[2,4; 11,90]
在矩阵上执行条件运算很容易,但如何在右侧引用当前元素?
testmatrix(testmatrix< 10)= ??? * 2
答案 0 :(得分:4)
与左侧完全相同:
testmatrix(testmatrix<10) = testmatrix(testmatrix<10)*2
或者当Amro指出时,您可以通过创建可重用的逻辑索引掩码来节省计算:
idx = testmatrix < 10
testmatrix(idx) = testmatrix(idx)*2
第二种方法在更复杂的情况下或者情况重复多次或速度是主要问题的情况下特别有用
答案 1 :(得分:3)
您需要的是:
testmatrix(testmatrix < 10) = testmatrix(testmatrix < 10)*2;
答案 2 :(得分:0)
这个怎么样:
A = randi(100,1000,1);
cond = A&lt; = 10;
test = A(cond)。* 2