我有一些数据,包括我想将它们存储在csv文件中的字符串和数字。
作为函数输出的数字存储在1x20的数组中。
所以在csv文件中,我希望有21列!因此,csv文件中的第一列应该是字符串,接下来的20列具有1x20数组中的信息。
我怎么能这样做?
我使用这样的东西来制作一个1x21的单元格:
%str:string变量; arr:1x20数字数组
c = cell(1,21);
c {1,1} = str;
对于cnt = 2:21
c {1,cnt} = arr(1,cnt-1);
端
然后我尝试了下面link提供的代码:
fid = fopen('test.csv', 'w') ;
fprintf(fid, '%s,', c{1,1:end-1}) ;
fprintf(fid, '%s\n', c{1,end}) ;
fclose(fid) ;
dlmwrite('test.csv', c(2:end,:), '-append') ;
,但我无法在csv中看到确切的数据。例如,我有arr(1,1) = 1.0000。但是csv文件中的第二列是空的!
有人可以帮我解决这个问题吗?
更新:
答案没有用:(
让我以不同的方式提出我的问题,并使其有点清楚。
我希望在我的csv文件中有一些类似下面的数据:
path, feat1, feat2, feat3, feat4
C:\mydata\First\,10,2.001,450,12
C:\mydata\Second\,11,4.41,250,11
C:\mydata\Third\,20,3.891,289,10
因此,每行数据在第一列中有一个字符串,在下面有4个数字。
这4个数字是函数作为数组的输出。因此成像str是字符串,output是4个数字的数组。所以,我想在下面的代码中添加一个部分,它可以将结果以我上面提到的格式存储到csv文件中。
path1 = "C:\mydata\First\";
path2 = "C:\mydata\Second\";
path3 = "C:\mydata\Third\";
output = [];
for i = 1:3
str = eval(sprintf("path%d",i));
output = myFunction(str); % output is an array of data
%%The code I need to add here to store the data in a csv file%%
end
我希望现在很清楚。提前谢谢。