Indexing with min and numel
Show older comments
vector1 = 1:5
vector2 = 2:7
N = max(numel(vector1), numel(vector2))
[n,I] = min([numel(vector1),numel(vector2)]) *can someone kindly explain to me how indexing in this works? How is it either going to be 1 or 2?
Accepted Answer
More Answers (2)
John D'Errico
on 17 Nov 2023
Edited: John D'Errico
on 17 Nov 2023
vector1 = 1:5
vector2 = 2:7
N = max(numel(vector1), numel(vector2))
I'm not sure what you mean by indexing. But the above seems perfectly logical. And there is no indexing involved. N is simply the larger of the two vector lengths. It must be the last line you show that is in question.
[n,I] = min([numel(vector1),numel(vector2)])
To understand this, you need to break it down. What did you do here?
[numel(vector1),numel(vector2)]
You created a VECTOR of length 2.
Now which element is the smaller one? The first one. That is what I tells you. Since that vector only has two elements in it, then I will only ever be 1 or 2.
vector1 = 1:5
vector2 = 2:7
N = max(numel(vector1), numel(vector2))
[n,I] = min([numel(vector1),numel(vector2)])
I'm not sure what you are asking. In the last line of code min returns 5 for n because numel(vector1) is 5 and returns 1 for I because numel(vector1) is in the first position of the vector constructed by concatenation: [numel(vector1),numel(vector2)].
Does that answer your question?
Categories
Find more on Matrix Indexing 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!