假设 B
是一些包含整数的大矩阵,包括零和非零。我想用 B 作为参数调用函数 my_function
,但零值设置为 1。有没有办法在不创建临时变量的情况下做到这一点,如 A
在这种情况下?
A = B;
A(A==0) = 1;
my_function( A );
最佳答案
实际上,在这种特定情况下,可以使用表达式 B + ~B
。
例子
>> B = fix(5 * rand(5))
B =
4 0 3 2 3
0 3 3 0 2
1 4 0 0 2
1 4 3 4 3
3 1 1 1 1
>> B + ~B
ans =
4 1 3 2 3
1 3 3 1 2
1 4 1 1 2
1 4 3 4 3
3 1 1 1 1
给你。
关于matlab - 非破坏性地更改矩阵中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13769220/