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

标签 matlab matrix variable-assignment

我对 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/

相关文章:

旋转矩阵的 Python 程序。为什么我的程序花费了这么多时间?

python - 从每个列表中删除第三个元素和第二个元素,并查找二维列表中最后一个元素在特定范围内的列表

javascript - 在 javascript 中以存在方式定义变量的快捷方式

matlab - 命令 A(~A) 在 matlab 中真正做什么

matlab - 重新缩放图中的 Y 轴

java - 从 Java 读取文件时出现奇怪的行为

c - 值未正确分配给变量

python - 将新数据分配给现有的 xarray.DataArray

matlab - 在Matlab中使用svmtrain获得模型后如何找到特征的权重?

matlab - 从matlab中的表中每n行提取x行