matlab - 非破坏性地更改矩阵中的值

标签 matlab matrix

假设 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/

相关文章:

java - Java 中的插值 : Mapping a random number from one range to another

database - 在向量中搜索计算量太大

更改 C 结构中矩阵的内容

matlab - 如何获得垂直于一组向量的向量(使用Matlab)?

matlab - 了解如何计算 FLOP 次数

algorithm - 平行四边形内的随机点

matlab - 在 Matlab 绘图的刻度标签中删除科学记数法

python - 将字典的内容导出到 m x n 矩阵

python - 在Python中将一维数组转换为基于类的二维矩阵

java - 在JAVA中创建二维二进制矩阵