Why I get 1×0 empty double row vector?

Hi, I have problem with my code. I don't know why fidx1 is 1x0 empty double row vector?
min(oh1) and max(oh1) results are:
>>min(oh1)
ans = 102.8890
>> max(oh1)
ans = 106.2470
d1=[0 min(oh1) min(oh1)];
e1=[max(oh1) max(oh1) max([oh1 oh2 oh3 oh4 oh5 oh7 oh11 oh13 oh19 oh23 oh25 oh29 oh35 oh37])];
X1=[xq1];
Y1=[100*r1];
lidx1 = find(X1 == max(oh1));
Ylidx1 = Y1(lidx1);
fidx1 = find(X1 == min(oh1));
Yfidx1 = Y1(fidx1);

4 Comments

Why do you assume that there is any relationship between xq1 and oh1? Why do you assume that there is bit-for-bit exact matches?
Relationship between xq1 and oh1:
oh1L1=[104.154 103.962 104.171 104.119 104.093 104.006,......]
oh1L2=[103.735 103.517 103.727 103.718 103.753 103.674,......];
oh1L3=[103.666 103.491 103.674 103.657 103.666 103.596,......];
oh1=[oh1L1 oh1L2 oh1L3];
xq1 = (0:(max(oh1))/200:max(oh1));
My code works only for max value.
There's something wrong with part:
fidx1 = find(X1 == min(oh1));
Yfidx1 = Y1(fidx1);
I can't understand this

Sign in to comment.

 Accepted Answer

Ive J
Ive J on 27 Dec 2020
Edited: Ive J on 27 Dec 2020
xq1 (and therefore X1) simply may don't contain min(oh1) since you are discretizing [0, max(oh1)]. What you can do is to find the idx corresponding to the closest value to min_oh1
max_oh1 = 104;
xq1 = 0:104/200:104;
[~, fidx1] = min(abs(xq1 - min(oh1)));

5 Comments

104 result from rounding values in oh1 vector?
no it's just a simple example.
oh1 = [104.154 103.962 104.171 104.119 104.093 104.006 103.666 ...
103.491 103.674 103.657 103.666 103.596];
xq1 = 0:max(oh1)/200:max(oh1);
find(xq1 == min(oh1)) % nothing's here
ans =
1×0 empty double row vector
[~, fidx1] = min(abs(xq1 - min(oh1)));
[xq1(fidx1), min(oh1)] % to compare
ans =
103.6501 103.4910
It works, thank you!
But I have small question by the way: When I should use something like [~, fidx1]= instead of just fidx1= ?
The first output argument is the minimum value itself, and the second one is it's index.
Ok, get it, thanks!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!