MATLAB中给矩阵中的某些元素赋值(不用循环)

作者:小胖吴 | 创建时间: 2023-05-25
再对矩阵处理的时候,我们经常会遇到对矩阵中满足条件的某些元素进行处理的情况。在不使用for循环的情况下,怎样处理这个问题呢,我们将借助find()这个函数进行具体的说明。...
MATLAB中给矩阵中的某些元素赋值(不用循环)

操作方法

对于如下矩阵A,我们想找到其中为0的元素,然后让这些元素都赋值为3。 A = [1 1 0; 1 0 1; 0 1 1];

我们首先用find()函数,找到矩阵A中所有为0的元素的下标。 zero_index = find(A==0) 我们得到的zero_index如下图所示。

然后我们用所得到的下标zero_index对对应的元素进行操作。 A(zero_index) = ~A(zero_index).*3 先对所有对应的元素取反,然后再将所有的元素乘以3,赋值到A中原先的位置。

对矩阵中部分元素通过下标来操作,包含+,-,*,/,~(取反)等。下面是部分结果示例(均是对步骤1中的矩阵A进行的操作)。 A(zero_index) = A(zero_index)+3; A(zero_index) = A(zero_index)-3; A(zero_index) = ~A(zero_index)*4; A(zero_index) = ~A(zero_index)/2; A(zero_index) = ~A(zero_index).^2;

为了实现某些情况的赋值,我们还可以将以上运算结合起来,对矩阵中的部分元素进行操作。以下面语句为例,图中是MATLAB运行结果。 A(zero_index) = (A(zero_index)+3).^2;

温馨提示

要注意在MATLAB中输入的所有字符都为英文字符
点击展开全文

更多推荐