我对 Matlab 不是很熟悉,所以提前为这个愚蠢的问题道歉。我想将数字 1 分配给矩阵的某些特定位置。我有一个行向量和相应的列向量。我曾多次尝试为这些位置赋值。但是,它没有用。这是一个较小尺寸的代码示例。假设有一个 4*4 矩阵,我想将 matrix(1,1)、matrix(2,3) 和 matrix(3,4) 分配给 1。这就是我所做的。
matrix = zeros(4,4);
row = [1 2 3];
col = [1 3 4];
matrix(row,col)=1;
但是,我得到的答案是
matrix=[ 1 0 1 1
1 0 1 1
1 0 1 1
0 0 0 0]
有人可以指出我在这里做错了什么吗?我要处理的矩阵的实际大小以千为单位,所以这就是为什么我不能手动一一分配这些位置的原因。有什么方法可以使用我必须分配值 1 的行向量和列向量?非常感谢,
最佳答案
您可以使用 sub2ind
计算您要分配到的位置的线性索引,并将其用于分配:
indices = sub2ind(size(matrix), row, col);
matrix(indices) = 1;
关于matlab - 如何在 MATLAB 中为矩阵的特定位置赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15872094/