필터 지우기
필터 지우기

comparing relevant elemnts of two matrix

조회 수: 1 (최근 30일)
som
som 2012년 11월 30일
Hi all,
I have two matrics like below:
a=[9 7 NaN; 6 3 8; 15 NaN 5; NaN 4 2];
b= [10,14,NaN;10,10,13;10,NaN,10;NaN,10,10;] ;
I want to see if each element of "a" is less than or equal to its corresponding element in "b"?
how can I write this program .
Thanks in advance.

채택된 답변

Image Analyst
Image Analyst 2012년 11월 30일
Maybe this is what you want:
a=[9 7 NaN; 6 3 8; 15 NaN 5; NaN 4 2]
b= [10,14,NaN;10,10,13;10,NaN,10;NaN,10,10;]
% Subtract the two.
% The value will be negative when a(r,c) < b(r,c).
differenceMatrix = a-b
% Make that into a boolean map of where a<b.
% It will be true (1) where a<b.
mapOfWhereAisSmallerThanB = differenceMatrix<0
% Just for fun, do the converse.
% Make that into a boolean map of where b<a.
% It will be true (1) where b<a.
mapOfWhereBisSmallerThanA = differenceMatrix > 0
% See if all non-Nan values have a<b
nonNanIndexes = ~isnan(a) & ~isnan(b)
if all(differenceMatrix(nonNanIndexes) < 0)
msgbox('All of a < b');
else
msgbox('Not all of a is < b');
end
In the command window:
a =
9 7 NaN
6 3 8
15 NaN 5
NaN 4 2
b =
10 14 NaN
10 10 13
10 NaN 10
NaN 10 10
differenceMatrix =
-1 -7 NaN
-4 -7 -5
5 NaN -5
NaN -6 -8
mapOfWhereAisSmallerThanB =
1 1 0
1 1 1
0 0 1
0 1 1
mapOfWhereBisSmallerThanA =
0 0 0
0 0 0
1 0 0
0 0 0
nonNanIndexes =
1 1 0
1 1 1
1 0 1
0 1 1

추가 답변 (3개)

Harshit
Harshit 2012년 11월 30일
size((A-B)>0)

Vishal Rane
Vishal Rane 2012년 11월 30일
편집: Vishal Rane 2012년 11월 30일
By 'little-equal' I assume you mean 'less than or equal'.
Use
a <= b
assuming a,b are of same dimensions.
See Relational Operators for more info.

Wayne King
Wayne King 2012년 11월 30일
편집: Wayne King 2012년 11월 30일
I'll assume that " littel-equal " means "less than or equal to"
a=[9 7 NaN; 6 3 8; 15 NaN 5; NaN 4 2];
b= [10,14,NaN;10,10,13;10,NaN,10;NaN,10,10;] ;
indices = find(a<=b);
a(indices)
The above gives the elements of a that are less than or equal to the corresponding element of b.
or
C = a<=b;
The matrix C has a 1 where the element of a is less than or equal to the element of b and a 0 otherwise
  댓글 수: 1
som
som 2012년 11월 30일
편집: som 2012년 11월 30일
Thanks for your answer, but please pay attention that both matrics have "NaN" elements. so the problem is still remaind.
Any help would be appreciated.

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

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by