Filter löschen
Filter löschen

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

10 Ansichten (letzte 30 Tage)
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!

Akzeptierte Antwort

Evan
Evan am 23 Jul. 2013
Bearbeitet: Evan am 23 Jul. 2013
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

Weitere Antworten (2)

Jan
Jan am 23 Jul. 2013
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 am 23 Jul. 2013
Rather than doing an equality comparison
if fint == [],
use the isempty function:
if isempty(fint)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by