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!