Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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:创建一个零矩阵,其中1位于特定位置_Matlab - Fatal编程技术网

Matlab:创建一个零矩阵,其中1位于特定位置

Matlab:创建一个零矩阵,其中1位于特定位置,matlab,Matlab,例如,我可以创建一个零(100)。但我希望第58行和第59列的条目为1。但我需要临时变量和多行来完成这项工作 a。让该矩阵为M。我如何在一行中完成这项工作M=.. 附言 b。更好的是,有时我希望零矩阵的两个或多个条目为1。 再说一遍,我该怎么做 如果我能做一个。在一行中,我当然可以把它们加起来。但是有什么特殊的函数可以用1来填充零矩阵条目吗?首先,记住一行表达式并不总是最有效的。它也可能更难阅读/理解 一种方法是使用矩阵 下面的示例创建了一个10x10零矩阵,其中1位于[5,2](第5行,第2

例如,我可以创建一个
零(100)
。但我希望第58行和第59列的条目为1。但我需要临时变量和多行来完成这项工作

a。让该矩阵为
M
。我如何在一行中完成这项工作<代码>M=..


附言

b。更好的是,有时我希望零矩阵的两个或多个条目为1。 再说一遍,我该怎么做


如果我能做一个。在一行中,我当然可以把它们加起来。但是有什么特殊的函数可以用1来填充零矩阵条目吗?

首先,记住一行表达式并不总是最有效的。它也可能更难阅读/理解

一种方法是使用矩阵

下面的示例创建了一个10x10零矩阵,其中1位于[5,2](第5行,第2列)和[7 5]

full(sparse([5 7],[2 5],1,10,10))
使用
full
将其从稀疏矩阵转换为“full”矩阵


另一种(更快但可能不那么直观)的替代方法是使用
accumarray

accumarray([5 2;7 5],1,[10,10])
请记住,上面的索引值直接用于表达式中的一行,更好的选择是单独创建它们

points = [5 2; 7 5]
或者

rowIdx = [5 7];
colIdx = [2 5];

M(58,59)=1。。。。这不管用吗?使用两个命令有什么问题
M=0(100100)
然后
M(58,59)=1
?对于第二部分M(M==0)=1work@kww如果这回答了你的问题,你应该考虑接受它。连续地问问题而不接受答案并不是使用SO的最佳方式。