필터 지우기
필터 지우기

Determine if a value is an Empty Matrix: 0 x 1 and replace with NaN

조회 수: 10 (최근 30일)
Theodore
Theodore 2013년 7월 23일
Hello. In my code I'm attempting to locate the max value of a variable. Unfortunately for doing max(variable) it gives an error if the matrix is a []. I was trying to figure out how to properly write my if else loop to put in NaN to a previously defined array if its a [] and if not, to calculate the value. My code is as follows:
if l == 1
fint=intersect(find(b(:,1)==k),find(b(:,2)==l))
if fint == []
high_maxT_mo(k - (minyear-1),1) = NaN
else
high_maxT_mo(k - (minyear-1),1) = nanmax(maxtemp(fint))
end
end
I get the following:
fint =
Empty matrix: 0-by-1
Error using == Matrix dimensions must agree.
Thanks!
  댓글 수: 1
Theodore
Theodore 2013년 7월 23일
k is a variable defined in my for loop spanning from k=minyear:maxyear.

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

채택된 답변

Evan
Evan 2013년 7월 23일
편집: Evan 2013년 7월 23일
help isempty
Your code would look something like this:
if l == 1
fint = intersect(find(b(:,1)==k),find(b(:,2)==l))
if isemty(fint)
high_maxT_mo(k - (minyear-1),1) = NaN
else
high_maxT_mo(k - (minyear-1),1) = nanmax(maxtemp(fint))
end
end

추가 답변 (2개)

Jan
Jan 2013년 7월 23일
A simplification for:
fint=intersect(find(b(:,1)==k),find(b(:,2)==l))
is:
fint = find(b(:,1)==k & b(:,2)==l)

the cyclist
the cyclist 2013년 7월 23일
Rather than doing an equality comparison
if fint == [],
use the isempty function:
if isempty(fint)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by