Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 填充与行数和列数对应的零矩阵_Matlab_Loops_Matrix - Fatal编程技术网

Matlab 填充与行数和列数对应的零矩阵

Matlab 填充与行数和列数对应的零矩阵,matlab,loops,matrix,Matlab,Loops,Matrix,我有一个矩阵(例如a),它有n*3维,第一列是行号,第二列是列号,第三列是高度值 我有一个I*j维的零矩阵。现在我想把高度值(第三列)放在对应于该高度的行(第一列)和列(第二列)的零矩阵(B)中 例如: A=[5,4,108;1,3,105;3,3,98] B=[0 0 0 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 0 0 0] 现在我想把108放到第5行,第4列放到零矩阵中,把105放到第1行,第3列放到零矩阵中,以此

我有一个矩阵(例如a),它有n*3维,第一列是行号,第二列是列号,第三列是高度值

我有一个I*j维的零矩阵。现在我想把高度值(第三列)放在对应于该高度的行(第一列)和列(第二列)的零矩阵(B)中

例如:

A=[5,4,108;1,3,105;3,3,98]
B=[0 0 0 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 0 0 0]
现在我想把108放到第5行,第4列放到零矩阵中,把105放到第1行,第3列放到零矩阵中,以此类推

B=[0 0 105 0 0 0;0 0 0 0 0 0;0 0 98 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 108 0 0 0 0]

我想在没有“for”循环的情况下完成这项工作。

正如Sardar在文档中指出的那样。您需要的特定命令是
sub2ind
。这将行、列下标对转换为线性索引

步骤1:获取A中定义的行/列对的线性索引

idx = sub2ind(size(B), A(:,1), A(:,2));
步骤2:将B中索引处的值分配给A中第三列的值

B(idx) = A(:,3)

B =

     0     0   105     0     0     0     0
     0     0     0     0     0     0     0
     0     0    98     0     0     0     0
     0     0     0     0     0     0     0
     0     0     0   108     0     0     0

这是非常基本的。阅读这篇文章,你之前的所有问题都有很好的答案。您尚未接受之前任何问题的任何答案。考虑一下投票/标记最有帮助的答案,作为回报来帮助那些志愿帮助你的人。你好,我非常感谢你的指导。非常感谢。