comparing relevant elemnts of two matrix
1 次查看(过去 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
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
0 个评论
更多回答(3 个)
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.
0 个评论
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!