Write 2d matrix to single Excel cell

5 ビュー (過去 30 日間)
Bastian Kindereit
Bastian Kindereit 2022 年 3 月 21 日
コメント済み: Voss 2022 年 3 月 22 日
I need to make an Excel file (or CSV) with a list of variable names in the first column (e.g. attached "Nm.mat" file), and their respective value in the second column. The values are a mix of scalars and matrices (e.g. attached "Val.mat" file). I used the following command to generate the csv file after loading Nm and Val to the workspace:
>> writetable(table(Nm,Val),'test.csv','WriteVariableNames',false);
Unfortunately, it writes all the values from the 12x12 matrix in a long row array with one value per cell (see "test_is.csv"). I would like it to arrange them all into a single cell as in the "test_shouldbe.csv" file.
Please help me generate the "test_shouldbe.csv" file. It's fine if it writes it to an Excel instead as that's ultimately what it's going to be. Thanks in advance!

採用された回答

Voss
Voss 2022 年 3 月 21 日
load('Nm.mat');
load('Val.mat');
t = table(Nm,Val);
% make a cell array containing the table's contents
C = table2cell(t);
% convert the second column to character vectors representing the matrices
C(:,2) = cellfun(@mat2str,C(:,2),'UniformOutput',false)
C = 2×2 cell array
{'Name1'} {'0' } {'Name2'} {'[1 -1 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0;0 0 1 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0]'}
% write the cell array to file
writecell(C,'test_shouldbe.csv');
  4 件のコメント
Bastian Kindereit
Bastian Kindereit 2022 年 3 月 22 日
Wow, thanks so much, that worked perfectly!
Voss
Voss 2022 年 3 月 22 日
Excellent! You're welcome!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSpreadsheets についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by