Azzera filtri
Azzera filtri

Help me avoid this error: Empty matrix: 0-by-1

3 visualizzazioni (ultimi 30 giorni)
I have a program like this:
clc
a=[0 0; 150 0.5; 300 0.35; 450 0.253; 600 0.22; 750 0.276; 900 0.183; 1050 0.228; 1200 0.17; 1350 0.207; 1500 0.2; 1650 0.19; 1800 0.187; 1950 0.21; 2100 0.176; 2250 0.197; 2400 0.17]
b=[900 900 750 2100 750 150 150 150 300]'
for i=1:5
c=find(a(:,1)==b(i));
f=a(c,:);
d(i)=prod(f);
end
e=sum(d)
My main program for many vectors b with components of a. I want to find e, but few result of c are Empty matrix: 0-by-1
Help me. Thanks.
  1 Commento
Pham
Pham il 5 Ago 2013
Modificato: Pham il 5 Ago 2013
Thank you for helping me. But I do not understand why in my main program, with 3 value "150 150 150" in vector b, then the vector c is "0.5 Empty matrix: 0-by-7 Empty matrix: 0-by-8", without "0.5 0.5 0.5" ??

Accedi per commentare.

Risposta accettata

Iain
Iain il 5 Ago 2013
Modificato: Iain il 5 Ago 2013
Change : d(i) = prod(f); to
if isempty(f)
d(i) = NaN;
else
d(i) = prod(f);
end
and e = sum(d) to:
e = nansum(d);
If NaN isn't convenient, change it for something that is.

Più risposte (1)

Jan
Jan il 5 Ago 2013
d = nan(1, 5);
for i=1:5
c = (a(:, 1) == b(i));
if any(c)
d(i) = prod(a(c, :));
end
end

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by