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

12 次查看(过去 30 天)
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!

采纳的回答

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