use of built in functions; manipulating data arrays

2 views (last 30 days)
Would you please explain when this works
>> d = [1, 2, 3; 4, 5, 6];
f = size(d)
f =
2 3
>> [rows,cols] = size(d)
Why is it that this does not work?
>> [rows, cols]=[2 3]
Too many output arguments
Thank you.

Accepted Answer

Matt J
Matt J on 8 Nov 2020
Edited: Matt J on 8 Nov 2020
The operation [2,3] is a matrix concatenation, which has only 1 output (the concatenated matrix). It is equivalent to making the following function call,
horzcat(2,3)
ans = 1×2
2 3
This is what you want to do instead,
[row,col]=deal(2,3)
row = 2
col = 3
  3 Comments
Stephen23
Stephen23 on 9 Nov 2020
"I have three different basic matlab books with the pages about 300,400, and 700 respectively but unfortunately they don't cover functions I encounter in matlab forums. They don't also cover horzcat and dial. "
This is the best place to learn MATLAB:
That page links to tutorials you can work through yourself, and the MATLAB Onramp is a series of videos that teaches basic concepts that you will need to know. Don't waste your time with out-of-date, half-baked, flawed books.
Matt J
Matt J on 9 Nov 2020
Thank you for your all introducing functions horzcat and the concept matrix concatenation.
You're welcome. If this resolves your question, though, please Accept-click the answer.

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!