Quick way to write cell or cell array
3 ビュー (過去 30 日間)
古いコメントを表示
Hi -
I'm trying to write a cell array containing something like (to a file):
'A1' 'A2' 'A3'
[2291x1 double] [1424x1 double] [1545x1 double]
Is there any quick and easy way to do so?
I appreciate any suggestion.
Thank you
Pearl
0 件のコメント
採用された回答
Azzi Abdelmalek
2012 年 8 月 24 日
T={'A1' ,'A2' , 'A3';rand(2291,1) rand(1424,1) rand(1545,1)}
%i m not sur if that what you want
4 件のコメント
Azzi Abdelmalek
2012 年 8 月 28 日
編集済み: Azzi Abdelmalek
2012 年 8 月 28 日
%for mor columns (676) you can use this:
T={'A1' ,'A2' , 'A3';rand(2291,1) rand(1424,1) rand(1545,1)}
s='ABCDEFGHIJKLMNOPQRSTUVWXYZ';c=s';
for k=1:length(s)
for l=1:length(s)
c=char(c,[s(k) s(l)])
end
end
for k=1:size(T,2)
n=length(T{2,k})+1;ch1=strtrim(c(k,:))
xlswrite('ans_xls126.xlsx',T(1,k),sprintf([ ch1 '%d:' ch1 '%d'],1,1))
xlswrite('ans_xls126.xlsx',T{2,k},sprintf([ ch1 '%d:' ch1 '%d'],2,n))
end
その他の回答 (1 件)
Walter Roberson
2012 年 8 月 25 日
MATLAB is a bit weak on routines to write cell arrays all at one time. But you can use something like this:
headers = YourCell(1,:);
header_format = '%.15s %.15s %.15s\n';
values = cell2mat(YourCell(2,:));
numcols = size(values,2);
value_format = [ repmat('%.15g ', 1, numcols-1), '%.15g\n');
fout = fopen('YourFile.txt', 'wt');
fprintf(fout, header_format, headers{:});
fprintf(fout, value_format, values.'); %transpose is important!
fclose(fout);
2 件のコメント
Walter Roberson
2012 年 8 月 25 日
NaN will be written to the file if you use the structure such as I showed.
In order to write in "columns", you need to define how you can tell columns apart, such as how you can tell whether there are one blank columns or two blank columns instead. When that is defined we can help write the code.
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!