Indexing with min and numel
조회 수: 2 (최근 30일)
이전 댓글 표시
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?
댓글 수: 0
채택된 답변
Dyuman Joshi
2023년 11월 17일
이동: Dyuman Joshi
2023년 11월 17일
[n,I] = min([numel(vector1),numel(vector2)])
There are 2 elements in the input array, as numel() returns a scalar value.
Then min() will output the minimum value of those, and the first index of where the minimum value occurs.
"How is it either going to be 1 or 2?"
Because there are only 2 elements in the array.
댓글 수: 0
추가 답변 (2개)
John D'Errico
2023년 11월 17일
편집: John D'Errico
2023년 11월 17일
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.
댓글 수: 0
Les Beckham
2023년 11월 17일
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?
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Structures에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!