如何在MATLAB中为矩阵的特定位置赋值?

Cas*_*sie 7 matlab matrix variable-assignment

我对Matlab不太熟悉,所以提前为这个愚蠢的问题道歉.我想将数字1分配给矩阵的某些特定位置.我有一个行向量和相应的列向量.我试图多次为这些位置分配值.但是,它没有用.这是一个较小的代码示例.假设有一个4*4矩阵,我想将矩阵(1,1),矩阵(2,3)和矩阵(3,4)分配给1.这就是我所做的.

matrix = zeros(4,4);
row = [1 2 3];
col = [1 3 4];
matrix(row,col)=1;
Run Code Online (Sandbox Code Playgroud)

但是,我得到了答案

matrix=[ 1 0 1 1
         1 0 1 1
         1 0 1 1
         0 0 0 0]    
Run Code Online (Sandbox Code Playgroud)

谁能指出我在这里做错了什么?我将要处理的矩阵的实际大小为数千,因此我无法手动逐个分配这些位置.有没有办法使用行向量和列向量我必须分配值1?非常感谢你,

Bjo*_*n H 10

您可以使用sub2ind计算要分配的位置的线性索引并将其用于分配:

indices = sub2ind(size(matrix), row, col);
matrix(indices) = 1;
Run Code Online (Sandbox Code Playgroud)