VarNames Matlab上的双引号

时间:2018-03-01 13:40:24

标签: matlab

我正在使用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人员。我偶尔需要编辑其他进程中使用的文件。不幸的是,这种操作之后的过程需要围绕变量名称的双引号。

1 个答案:

答案 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,',');