How can i extract Index values of different cell arrays
2 次查看(过去 30 天)
显示 更早的评论
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.
采纳的回答
jonas
2018-7-30
编辑:jonas
2018-7-30
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 个评论
jonas
2018-7-30
编辑:jonas
2018-7-30
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!