在matlab

时间:2015-08-07 08:10:40

标签: arrays string matlab csv

我在matlab中使用以下方式构建了以下字符串数组:

labels=textread(nome_tecnicas_base, '%s');

for i=1:size(labels)
    temp_vector=cell(1,10);
    [temp_vector{1:10}]=deal(labels{i});
    final_vector=horzcat(final_vector,temp_vector);
end

我想保存此向量,每个字符串值用逗号(例如,csv文件)分隔在文本文件中。我试过几种方式,但是当我尝试用它读取时,例如,textread函数我有以下错误:

a=textread('labels-cpen-R.txt')
Error using dataread
Trouble reading number from file (row 1, field 1) ==>  dct,dct,dct,dct,dct,dct,dct,dct,dct,dct,hierar

这就是我保存文件的方式

  

DCT,DCT,DCT变换,DCT变换,DCT变换,DCT变换,DCT变换,DCT变换,DCT变换,DCT变换,教主-过筛,教主-过筛,教主-过筛,教主-过筛,教主-过筛,教主-过筛,教主-SIFT ,层次筛选,层次筛选,层次结构   过筛,泽尼克,泽尼克,泽尼克,泽尼克,泽尼克,泽尼克,泽尼克,泽尼克,泽尼克,泽尼克,zernike2,zernike2,zernike2,zernike2,zernike2,zernike2,zernike2,zernike2,zernike2,zernike2,KPCA,KPCA,KPCA,KPCA, KPCA,KPCA,KPCA,KPCA,KPCA,KPCA,过筛,过筛,过筛,过筛,过筛,过筛,过筛,过筛,过筛,过筛,冲浪,冲浪,冲浪,冲浪,冲浪,冲浪,冲浪,冲浪,冲浪,冲浪,bayesianfusion0,bayesianfusion0,bayesianfusion0,bayesianfusion0,bayesianfusion0,bayesianfusion0,bayesianfusion0,bayesianfusion0,bayesianfusion0,bayesianfusion0,BKS-融合,BKS-融合,BKS-融合,BKS-融合,BKS-融合,BKS-融合,BKS-融合BKS-融合,BKS-融合,BKS-融合,fusionvoting4,fusionvoting4,fusionvoting4,fusionvoting4,fusionvoting4,fusionvoting4,fusionvoting4,fusionvoting4,fusionvoting4,fusionvoting4,fusionvoting6,fusionvoting6,fusionvoting6,fusionvoting6,fusionvoting6,fusionvoting6,fusionvoting6,fusionvoting6,fusionvoting6, fusionvoting6,multiscale_voting,multiscale_voting,multiscale_voting,multiscale_voting,multiscale_voting,multiscale_voting,multiscale_voting ,multiscale_voting,multiscale_voting,multiscale_voting,bks_rf_lvt,bks_rf_lvt,bks_rf_lvt,bks_rf_lvt,bks_rf_lvt,bks_rf_lvt,bks_rf_lvt,bks_rf_lvt,bks_rf_lvt,bks_rf_lvt,bks_svr_lvt,bks_svr_lvt,bks_svr_lvt,bks_svr_lvt,bks_svr_lvt,bks_svr_lvt,bks_svr_lvt,bks_svr_lvt,bks_svr_lvt,bks_svr_lvt,bks_svr_otsu,bks_svr_otsu ,bks_svr_otsu,bks_svr_otsu,bks_svr_otsu,bks_svr_otsu,bks_svr_otsu,bks_svr_otsu,bks_svr_otsu,bks_svr_otsu,multiscale_bks_rf_lvt,multiscale_bks_rf_lvt,multiscale_bks_rf_lvt,multiscale_bks_rf_lvt,multiscale_bks_rf_lvt,multiscale_bks_rf_lvt,multiscale_bks_rf_lvt,multiscale_bks_rf_lvt,multiscale_bks_rf_lvt,multiscale_bks_rf_lvt,multiscale_bks_svr_lvt,multiscale_bks_svr_lvt,multiscale_bks_svr_lvt,multiscale_bks_svr_lvt,multiscale_bks_svr_lvt,multiscale_bks_svr_lvt,multiscale_bks_svr_lvt ,multiscale_bks_svr_lvt,multiscale_bks_svr_lvt,multiscale_bks_svr_lvt

如何保存此向量以及如何正确读取此文件?

1 个答案:

答案 0 :(得分:1)

尝试使用textscan进行阅读,使用fprintf进行编写

来自matlab文档:

fileID = fopen('data.csv');
C = textscan(fileID,'%f %f %f %f %u8 %f',...
'Delimiter',',','EmptyValue',-Inf);

所以在你的情况下:

textscan(fileID,'%s', 'Delimiter', ',')

编辑:要将数据写入文件,可以使用带有文件标识符的fprintf:

 fileID= fopen('data.csv', 'w') ;
 fprintf(fileID, '%s,', data{1,1:end-1}) ;
 fprintf(fileID, '%s\n', data{1,end}) ;
 fclose(fileID)