MATLAB Answers

Sub-scripted Dimension Mismatch Error

1 ビュー (過去 30 日間)
Ibro Tutic
Ibro Tutic 2016 年 5 月 25 日
コメント済み: Ibro Tutic 2016 年 5 月 25 日
I am trying to create a table, with range breakpoints along the left hand vertical axis (starting at the 2nd row of the matrix a). But I can't seem to figure this error out.
I first create an empty matrix a.
Then I try to assign these values, starting at the 2nd row
range = [0 35 70 100 135 170 200 230 260 300]';
by using the following command
a(2:end,1) = range;
Now, shouldn't this assign the values of range, beginning at the second row of a, instead of the first? I get the error
Subscripted assignment dimension mismatch.
Any thoughts?


Todd Leonhardt
Todd Leonhardt 2016 年 5 月 25 日
At the moment you are attempting to assign something to the 1st column row a (starting at the 2nd row), but a is a matrix of double precision floating-point numbers of dimensions 0 x 0. It doesn't have any data in it at all. So you are effectively attempting to assign things to memory which hasn't been allocated yet.
Now, if a already had a matrix where the in the first column was of sufficient size, then you could do this.
I don't know what you are trying to achieve with these "range breakpoints". Maybe you could use nan (not-a-number) values in their place?
  2 件のコメント
Ibro Tutic
Ibro Tutic 2016 年 5 月 25 日
I fixed the issue by initializing the matrix a by
a = zeroes(11,11)
Which was what you essentially suggested. Thanks.


その他の回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 5 月 25 日
When a is [], end is 0 so 2:end is 2:0 which is empty. You are trying to write non-empty data into an empty range.
You would need
a(2:length(range)+1,1) = range;

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by