MATLAB: Size

size;

VAR_START =
9 12 14 17 24 31 34 37 40 43 46 49 52 55 58 61 64
>> NVAR = size(VAR_START)
NVAR =
1 17
What is the function of 'size' here???? why is it giving 1 17…???? I am srry bt i cannot understand!!!

Best Answer

That's just the way size works. It's kind of like they expect size() to be used with arrays that are 2 dimensions or more. Get used to it. It says your "array" is 1 row by 17 columns. If you want just the "17" and not the "1" and you know in advance that you have a 1 dimensional array, then use length() function instead of the size() function. The length() function will give you 17 - a single number - without it being a 2 element result with the unhelpful "1" as the first element. length() gives you the length of the longest dimension, which is kind of confusing, so I use length() for 1D arrays (and only for 1D arrays), and size() for 2D or higher dimensional arrays.