Index with min command

2 次查看(过去 30 天)
SAZZAD HOSSAIN
SAZZAD HOSSAIN 2012-11-18
Hi
I am working with the minimums calculated from two arrays in the following way -
NE = 100;
t = linspace(0,2,2*NE);
T = linspace(0,1,2*NE);
for ii = 1:NE
[val,index] = min(abs(t-T(ii)))
end
now i understand the value of "val", but i cannot figure out how the values for "index" are coming out. For my work the value of index is very important. I would really appreciate if someone help me figure it out.
Thanks
Hossain
  2 个评论
Matt J
Matt J 2012-11-18
What doesn't make sense about the behavior you're seeing?
SAZZAD HOSSAIN
SAZZAD HOSSAIN 2012-11-18
for each loop there is a min value. but i dont understad how the index assigned to the value is related to "t" or "T".

请先登录,再进行评论。

回答(2 个)

Azzi Abdelmalek
Azzi Abdelmalek 2012-11-18
编辑:Azzi Abdelmalek 2012-11-18
NE = 100;
t = linspace(0,2,2*NE);
T = linspace(0,1,2*NE);
val=[];
index=[];
for ii = 1:NE
[val1,index1] = min(abs(t-T(ii)))
val=[val val1];
index=[index index1];
end
index is the position of the min value in the vector t
  3 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2012-11-18
编辑:Azzi Abdelmalek 2012-11-18
It's clear min value don't belong to t, it's the position of the value of t making t-T(ii) minimal. And I did'nt say it's a minimal value of t
Jan
Jan 2012-11-19
编辑:Jan 2012-11-19
Ok, then I confuse "index is the position of the min value in the vector t" with "...of the vector t". My English is not firm.
The problem of the OP is exactly, that the meaning of the index is not clear. So this point should be very clear, although it is almost trivial.

请先登录,再进行评论。


Jan
Jan 2012-11-18
At first you create a temporary vector:
v = abs(t-T(ii));
Then you find its minimum value and the corresponding index:
[val, index] = min(v)
such that v(index) has the value val.

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by