compare and sort element in two arrays in matlab?
10 views (last 30 days)
I have two array
a=[3 1 2]
b=[2 3 1]
each element in each array has one value, that is c. for example c(a(1))=5, c(a(2))=6, c(b(1))=9 ,..
I want to compare the c value of the same number in array a and b.
So it's like I want to compare c(a(1)) to c(b(2)) ; c(a(2)) to c(b(3)); c(a(3)) to c(b(1)). then the maximum c values will be stored in a new array (array d) in ascending order.
after that make a new array 1x3 which indicate the corresponding number of the value in array d.
How to do this in matlab?
Thanks in advance.
Ananthi Jegan on 19 Nov 2020
I hope that the below lines of MATLAB code would help in arriving at the above requested solution.
% As per the above description, assuming unique values in arrays “a” and “b”
a = [3 1 2 6 4 5];
b = [2 3 1 5 6 4];
% "c" is assumed to have the same values in "a" and "b”
c = [1:6];
% Initialising the arrays “da” and “db” to store the indices from “a” and “b”
da = zeros(size(c));
db = zeros(size(c));
% Find the indices of values matching in “c” with “a” and “b”
for i = 1:numel(c)
da(i) = find(a==c(i));
db(i) = find(b==c(i));
% Find the max values from above arrays and store in “d_actual”
d_actual = max(da,db);
% Store the sorted values of “d_actual” in “d_sorted”
d_sorted = sort(d_actual);
% New array to find the corresponding value from “d_sorted”
new_array = d_actual(d_sorted);
Nora Khaled on 19 Nov 2020
Edited: Nora Khaled on 19 Nov 2020
Try this code... I hope I understood the problem correctly
c = @(x) x.^2;
a=[3 1 2];
b=[2 3 1];
% get postions of max values
% store max valus in d
% get the corresponding values from a and b
% sort d
% sort corresponding values from a and b using d
disp('max of c in ascending order');
disp('corresponding data in ascending order');