Extracting values out of a cell array with tables
21 ビュー (過去 30 日間)
古いコメントを表示
Fabian Niederreiter
2021 年 4 月 19 日
コメント済み: Fabian Niederreiter
2021 年 4 月 20 日
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!