Cell matrix
1 次查看(过去 30 天)
显示 更早的评论
Hi there, I have a 37000 x 4 cell array. Columns are like for eg,
'01/02/2012 00:00:01' 'BEST_BID' 4.25000000000000 90
'01/02/2012 00:00:01' 'BEST_ASK' 4.26000000000000 90
'01/02/2012 00:00:01' 'BEST_BID' 4.25000000000000 90
'01/02/2012 00:00:01' 'BEST_ASK' 4.26000000000000 90
'01/02/2012 00:00:16' 'BEST_BID' 4.24000000000000 90
'01/02/2012 00:00:16' 'BEST_ASK' 4.26000000000000 90
'01/02/2012 00:00:17' 'BEST_BID' 4.25000000000000 90
'01/02/2012 00:00:17' 'BEST_ASK' 4.26000000000000 90
Ok now I want to create 2 matrices (separation) one with BEST_BID and one with BEST_ASK. Additionally they both would need to be in order with respect to their times in the first column and maintain the 3rd and 4th column information
0 个评论
采纳的回答
the cyclist
2012-2-9
Here is one of many ways to do it. This is more geared toward maximum readability than maximum efficiency.
[tf,index] = ismember(CA(:,2),{'BEST_BID','BEST_ASK'});
bidArray = CA(index==1,:);
askArray = CA(index==2,:);
bidArray = sortrows(bidArray,1);
askArray = sortrows(askArray,1);
% % I didn't think sortrows worked on cell arrays, but the above seems to work. If not, use this:
% [~,bidTimeOrder] = sort(bidArray(:,1));
% [~,askTimeOrder] = sort(askArray(:,1));
% bidArray = bidArray(bidTimeOrder,:);
% askArray = askArray(askTimeOrder,:);
更多回答(1 个)
Kevin Holst
2012-2-9
For the first part, here's how to create two cell arrays that are BEST_BID and BEST_ASK:
BEST_BID = myArray(strcmp(n(:,2),'BEST_BID'),:);
BEST_ASK = myArray(strcmp(n(:,2),'BEST_ASK'),:);
You said you're wanting to create two matrices, were you actually wanting cell arrays or matrices of the last two columns of the cell?
The sorting thing will take a bit more work to get, I'll have to get back to you on it.
2 个评论
Kevin Holst
2012-2-9
This function from the file exchange might help your sorting problem:
http://www.mathworks.com/matlabcentral/fileexchange/13770-sorting-a-cell-array
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multidimensional Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!