Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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 为什么blkdiag显示错误?_Matlab_Octave - Fatal编程技术网

Matlab 为什么blkdiag显示错误?

Matlab 为什么blkdiag显示错误?,matlab,octave,Matlab,Octave,这是我在octave控制台上编写的代码: disp("Hello World"); n=4; B=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4]; R=eye(7); for i=1:n gamma(i)=blkdiag(eye(n-i),B,eye(i-1)) end; gamma(i) 但是,我得到了这个错误: 错误:my_script.my:A(I)=X:X的大小必须与I的大小相同 任何帮助。事先谢谢。正如比克所指出的,为了索引矩阵,我们

这是我在octave控制台上编写的代码:

disp("Hello World"); 

n=4; 

B=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4];

R=eye(7); 

for i=1:n 

   gamma(i)=blkdiag(eye(n-i),B,eye(i-1))

end; 

gamma(i)
但是,我得到了这个错误:

错误:my_script.my:A(I)=X:X的大小必须与I的大小相同


任何帮助。事先谢谢。

正如比克所指出的,为了索引矩阵,我们需要使用另一个索引元素。因此,消除语法的正确语法是:

gamma(:,:,i)
而不是

gamma(i)

blkdiag
提供了一个2d数组
gamma(i)
是一个标量。无法在用于标量的空间中拟合二维数组。你可能想要
gamma(:,:,i)=…
@beaker好的,假设我想要4个[7x7]矩阵(gamma(1),gamma(2),gamma(3),gamma(4)),那么我应该做什么修改?我可以像你写的那样写“gamma(:,:,i)”吗?顺便说一下谢谢。然后您以
gamma(:,:,1)
@beaker的身份访问第一个烧杯,谢谢您的回复!