如何在一个.csv文件中保存多个单元格数组值



我一直在制作一个数据库,其中包含图像及其预设值和其他重要参数。但不幸的是,我无法将10图像的初始数据保存在一个.csv文件中。我已经使代码运行良好,可以创建.csv文件,但保存最后一个值并覆盖以前的所有值。我也给出了一次修改,即在代码中使用sprintf进行注释,但它为每次迭代单独制作了.csv文件。但我想制作一个包含7列的.csv文件,其中包含所有相应的值。

我的代码在下面,我的代码输出附在输出中。请有人指导我如何制作一个.csv文件,例如10值(在最终数据库中可以增加到数百(保存在1个.csv文件中。

clc
clear all
myFolder = 'C:UsersUSERDesktopPixROIDirectoryPixelLabelData_1';
filePattern = fullfile(myFolder, '*.png'); % Change to whatever pattern you need
theFiles = dir(filePattern);
load('gTruthPIXDATA.mat','gTruth')
gTruth.LabelDefinitions;
for i=1:10
%gTruth.LabelData{i,1};
baseFileName = theFiles(i).name;
fullFileName = fullfile(myFolder, baseFileName);
fprintf(1, 'Now reading %sn', fullFileName);
imageArray = imread(fullFileName);
oUt = regionprops(imageArray,'BoundingBox');
Y = floor(oUt.BoundingBox);
X_axis = Y(1);
Y_axis = Y(2);
Width = Y(3);
Height = Y(4);
CLASS = gTruth.LabelDefinitions{1,1};
JPG = gTruth.DataSource.Source{i,1};
PNG = gTruth.LabelData{i,1};
OUTPUT = [JPG X_axis Y_axis Width Height CLASS PNG]
%     myFile = sprintf('value%d.csv',i);
%     csvwrite(myFile,OUTPUT);
end

尝试fprintf(https://www.mathworks.com/help/matlab/ref/fprintf.html)。

您需要打开要编写的输出文件,然后可以在每次迭代中向其添加行

简单示例:

A = [1:10];                   % made up a matrix of numbers
fid = fopen('test.csv','w');  % open a blank csv and set as writable
for i = 1:length(A)           % loop through the matrix
fprintf(fid,'%in',A(i)); % print each integer, then a line break n
end
fclose(fid);                   % close the file for writing

相关内容

  • 没有找到相关文章

最新更新