我正在使用dataset()函数将逗号分隔的文本文件读入Matlab。文本文件中的变量名称包含名称周围的双引号。我正在将此文件读入Matlab,操作数据,并导出到单独的文本文件。问题是我需要双引号保留在变量名称周围;但是,Matlab删除了它们。 有没有办法告诉Matlab保留引号,或者在导出之前轻松替换引号?感谢
文本文件如下所示:[" Var1"," Var2",....] - Matlab导入文件没有问题。
inputname = 'MyFile.TXT';
outputname = 'MyOutput.TXT';
rawinventory = dataset('File', inputname', 'Delimiter', ',',
'ReadVarNames', true);
rawinventory(1,1); %The Command Window shows the first entry and the
%header name without the double quotes.
temp_raw = dataset2cell(rawinventory(:,:));
% Perform some data Manipulation here
%........
edited_raw = cell2dataset(temp_raw(:,:));
export(edited_raw, 'File', outputname, 'Delimiter', ',');
我知道可能有更好的方法来运行此代码。我的工作不是开发人员或IT人员。我偶尔需要编辑其他进程中使用的文件。不幸的是,这种操作之后的过程需要围绕变量名称的双引号。
答案 0 :(得分:0)
此功能解决了这个问题。将函数的.m文件放在与.m文件相同的文件夹中。 https://www.mathworks.com/matlabcentral/fileexchange/25387-write-cell-array-to-text-file?s_tid=gn_loc_drop
inputname = 'MyFile.TXT';
outputname = 'MyOutput.TXT';
rawinventory = dataset('File', inputname', 'Delimiter', ',',
'ReadVarNames', true);
rawinventory(1,1); %The Command Window shows the first entry and the
%header name without the double quotes.
temp_raw = dataset2cell(rawinventory(:,:));
for y = 1:size(temp_raw,2);
temp_raw(1,y) = strcat('"',temp_raw(1,y),'"');
end %This for loop replaces the double quotes
% Perform some data Manipulation here
%........
dlmcell(outputname,temp_raw,',');