How can i extract Index values of different cell arrays
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I want to extract the cell arrays w.r.to the index num,
for w =1:length(mydata)
%[~,I]= find(mydata{w, 2}(:,2)) = find(mydata{w, 1}(:,1));
for o = 1:length(mydata{w,2})
index = find(mydata{w, 2}(:,2) == mydata{w, 1}(:,1)== o);
mydata{w,3} = index;
end
end
I have a cell which contains max and its index values in each row. Now i want to find max index values in another cell and extract those values( matrix 1*2, here i want to extract only 1st col value only). for ex. [M,I] = [2,295]. 295 index value of its max value in certain row, let say (6,26321) is the extracted index value in another cell. extract value is 6(1st col) similarly all other row cells matrix. Thanks in advance.
5 commentaires
Réponse acceptée
jonas
le 30 Juil 2018
Modifié(e) : jonas
le 30 Juil 2018
Something like this should work.
s = load('mydata21.mat')
s=s.mydata21;
c=s(:,2) %arrays with indices
d=s(:,1) %arrays with values
out=cellfun(@(x,y)y(x(2),1),c,d)
6 commentaires
jonas
le 30 Juil 2018
Modifié(e) : jonas
le 30 Juil 2018
1. Cellfun is just a clean way of performing operation on multiple cells. In this case you can do the same with a simple loop:
%%Load data
s = load('mydata21.mat')
s=s.mydata21;
%%Preallocate
out=nan(length(s))
%%Loop over each row
for i=1:length(s)
out(i)=s{i,1}(s{i,2}(2));
end
2. If your data is already loaded, just delete the first line and replace the variable with whatever you call it? I suppose you should replace s by mydata?
3. In the cellfun or the loop, just change the column index from 1 to 2.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!