Empty matrix: 0-by-1

5 次查看(过去 30 天)
laser laser12
laser laser12 2015-7-13
Dears, I have a problem. I try to find a cretin value (Eexc) obtained from equation in an input array(E).
[ro,co]=find(E==Eexc)
i have got this error message. Empty matrix: 0-by-1
Regards,

回答(2 个)

Azzi Abdelmalek
Azzi Abdelmalek 2015-7-13
A=[1 2 3]
find(A==5)
The result is
ans =
Empty matrix: 1-by-0
Because 5 is not found in A

Star Strider
Star Strider 2015-7-13
Could be a problem in floating-point approximation inaccuracies, the result of expressing decimal numbers in binary format.
See if:
[ro,co]=find(abs(E-Eexc) <= 1E-8)
works. This introduces a tolerance to the comparison. You may need to experiment with it to get the result you want.
  4 个评论
Image Analyst
Image Analyst 2015-7-13
Most of us know about that min() trick. It would have been good to share the larger context of what you wanted (finding the closest index) in the first place rather than having us try to fix some approach that you thought of that turned out to be not very good. However, it still needs fixing. It's not good to have ro in both outputs of min. You should do it like this:
[minValue, indexOfClosestValue] = min(abs(E-Eexc)); %index of closest value
closestEValue = E(indexOfClosestValue);
Bachtiar Muhammad Lubis
I face the same issue like him. I have codes that look like:
load template;
comp=[];
for n=1:num_char
sem = corr2(template{1,n},img);
comp = [comp sem];
end
vd = find(comp==max(comp));
vd return Empty matrix: 1-by-0. In my case i only need a value. If i use abs() function the velue would be integer while i need rill number (i.e. either 1 or 0,5 etc.) And. Also if i use 1E-8 it would be return more than one value while i only need a value. Can you guys help me to solve my problem please.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Distribution Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by