一種可能的解決方案可以是:
到.mat
文件通過一個循環裝載(該文件的名可以是動態地從一個列表中生成或讀)
提取的第一行cellarray(字符串),並通過使用dlmwrite
函數
以去除所述第一行和(與dlmwrite
再次)寫的數值在具有.txt
它寫在一個.txt
文件轉換他們使用cell2mat
函數。在寫入數值時,precision
必須小心設置。
file_name_root='x2413';
% dummy loop (one iteration) just to test dynamic filename generation
for i=3:3
% generate the name of the input file
input_file_name=[file_name_root int2str(i)];
% generate the name of the output file
output_file_name=[file_name_root int2str(i) '.txt'];
% extract the name of the cellarray and assign it to "the_cell" variable
tmp=load(input_file_name);
var_name=char(fieldnames(tmp));
eval(['the_cell=tmp.' var_name ';'])
[r,c]=size(the_cell);
str='';
% get the first row string (probably a cleaver way to do it exists)
for i=1:c
str=[str ' ' char(the_cell(1,i))];
end
% print the first row in a ".txt" file
dlmwrite(output_file_name,sprintf('%s',str),'delimiter','')
% remove the first row
the_cell(1,:)=[];
% write the numerical values in the ".txt" file
% the "precision" shall be carefully set
dlmwrite(output_file_name,cell2mat(the_cell),'precision','%13.9f','delimiter',' ','-append')
end
您需要說明這些.txt文件需要什麼。他們是否必須與另一個程序進行交互?他們是否應該採用特定的格式?你打算在未來將它讀回Matlab嗎? – Setsu
爲什麼一個文本文件? – siliconwafer
對此缺乏澄清感到抱歉!我需要將.txt文件作爲與.mat文件具有相同尺寸的表格導入到Mathematica中 –