Matlab corresponding values between matrices?
2 次查看(过去 30 天)
显示 更早的评论
So i have these two matrices:
A =
745 780 800 860 810
780 780 760 695 815
744 825 720 690 750
715 860 700 670 620
B =
30 18 40 58 26
70 19 72 29 47
14 48 40 14 48
13 72 59 66 72
I want the user to enter a number N so the program will show how many of A's values are lower than the number the user typed. I did this with this command:
N=input('Type a number :')
C= nnz(A<N)
But now i want the program to show me the values of B that correspond to the A's values that are lower than the N number
(Sorry about my bad english, any ideas?)
0 个评论
采纳的回答
Image Analyst
2020-1-27
Try this:
A = [...
745 780 800 860 810
780 780 760 695 815
744 825 720 690 750
715 860 700 670 620]
B = [...
30 18 40 58 26
70 19 72 29 47
14 48 40 14 48
13 72 59 66 72]
% N = input('Type a number : ')
N = 745;
% Count how many are below the threshold.
mask = A < N
sumBelowThreshold = nnz(mask)
% Get the values at the same locations in B.
% First as a list:
valuesBelowThreshold = B(mask)
% Then as a masked array
Bmasked = B .* mask
You'll see in the command window:
sumBelowThreshold =
8
valuesBelowThreshold =
14
13
40
59
29
14
66
72
Bmasked =
0 0 0 0 0
0 0 0 29 0
14 0 40 14 0
13 0 59 66 72
更多回答(1 个)
Turlough Hughes
2020-1-26
编辑:Turlough Hughes
2020-1-27
This will show values of B that exist in A and which are also less than N.
result = B(ismember(B,A) & B<N)
If you need find the elements of B that exist in A within a certain tolerance there is also a function called ismembertol which will be appropriate in that case.
4 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Author Block Masks 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!