Extracting values out of a cell array with tables
조회 수: 5 (최근 30일)
이전 댓글 표시
I have a 41x1 cell array with tables including stock returns (find the cell array attached). The tables dimensions vary in number of columns.

I would now like to exctract all the data except column 1:3 from every table into one 1xXXX matrix.

Does anyone have a suggestion for a loop working throug my cell array that returns the described matrix?
댓글 수: 0
채택된 답변
per isakson
2021년 4월 20일
편집: per isakson
2021년 4월 20일
This script puts all the numerical data into a row vector (column-wise). You didn't say anything about order.
%%
load('CA.mat')
%%
XXX = [];
for jj = 1 : numel( DL12_10T )
tbl = DL12_10T{jj}(:,4:end);
num = table2array( tbl );
XXX = horzcat( XXX, reshape(num,1,[]) );
end
whos XXX
displays
Name Size Bytes Class Attributes
XXX 1x301836 2414688 double
댓글 수: 3
per isakson
2021년 4월 20일
It's possible to preallocate, but if the script is fast enough, why bother? It's easy to suppress the warning, which shows that you made a decision. If nothing else, preallocation adds a bit to the complexity of the code.
In this case you could preallocate a large XXX, and at the end remove any excess elements:
sas = whos('DL12_10T');
large_length = sas.bytes/8; % assuming double
XXX = nan( 1, large_length ); % physical memory shouldn't be a problem
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!