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

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

Pham
Pham 2013년 8월 5일
편집: Pham 2013년 8월 5일
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" ??

댓글을 달려면 로그인하십시오.

 채택된 답변

Iain
Iain 2013년 8월 5일
편집: Iain 2013년 8월 5일

0 개 추천

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.

추가 답변 (1개)

Jan
Jan 2013년 8월 5일

1 개 추천

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

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

질문:

2013년 8월 5일

댓글:

2019년 5월 25일

Community Treasure Hunt

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

Start Hunting!

Translated by