Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/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_Matrix - Fatal编程技术网

Matlab 无法执行分配,因为左侧和右侧的元素数不同

Matlab 无法执行分配,因为左侧和右侧的元素数不同,matlab,matrix,Matlab,Matrix,我有一个数组StartMeasuring,,里面填充了10个数字。我想在矩阵深度中填充10个数组,从开始测量中的数字开始倒数到零。 StartMeasuring=randi([10 30],1,10); lenDepth =len(StartMeasuring); Depth=NaN(lenDepth,30); for i=1:lenDepth Depth(i)=StartMeasuring(i):-1:0; end 我试图创建一个for循环,并用NaN替换一个矩阵,但出现了错误:

我有一个数组
StartMeasuring,
,里面填充了10个数字。我想在矩阵
深度
中填充10个数组,从
开始测量中的数字开始倒数到零。

StartMeasuring=randi([10 30],1,10);
lenDepth =len(StartMeasuring);
Depth=NaN(lenDepth,30);

for i=1:lenDepth
    Depth(i)=StartMeasuring(i):-1:0;
end
我试图创建一个for循环,并用
NaN
替换一个矩阵,但出现了错误:

Unable to perform assignment because the left and right sides have a different number of elements.

Error in sd (line 53)
    Depth(i)=StartMeasuring(i):-1:0;
我不明白为什么会出现这个错误,因为
Depth
StartMeasuring
的大小都是10

StartMeasuring=randi([10 30],1,10);
lenDepth = length(StartMeasuring); % numel is preferred
Depth = NaN(lenDepth,31);

for ii = 1:lenDepth
    Depth(ii,1:StartMeasuring(ii)+1) = StartMeasuring(ii):-1:0;
end
正如您最初所做的那样,使用单数进行索引会得到矩阵的单个元素,这并不奇怪。相反,将行作为单个数字进行索引,让它根据表达式填充所有列。在中阅读有关索引的更多信息

另外,
StartMeasuring(ii):-1:0
的大小在30和1之间是随机的,这意味着您必须根据其当前长度来存储它,在您的情况下(整数)由
StartMeasuring(ii)+1给出

显示
imagesc(深度)
的图:


请注意,我还更改了其他一些内容:

  • len
    是Python,而不是MATLAB。使用
    length
    ,或者,最好是1D数组
    numel
  • 赋值运算符
    =
    周围的空格有助于提高可读性
  • 在MATLAB中,通常不使用它们作为变量名
正如您最初所做的那样,使用单数进行索引会得到矩阵的单个元素,这并不奇怪。相反,将行作为单个数字进行索引,让它根据表达式填充所有列。在中阅读有关索引的更多信息

另外,
StartMeasuring(ii):-1:0
的大小在30和1之间是随机的,这意味着您必须根据其当前长度来存储它,在您的情况下(整数)由
StartMeasuring(ii)+1给出

显示
imagesc(深度)
的图:


请注意,我还更改了其他一些内容:

  • len
    是Python,而不是MATLAB。使用
    length
    ,或者,最好是1D数组
    numel
  • 赋值运算符
    =
    周围的空格有助于提高可读性
  • 在MATLAB中,通常不使用它们作为变量名

深度
实际尺寸为10x30,而不是像
开始测量那样的10倍
深度
实际尺寸为10x30,而不是像
开始测量那样的10倍