【问题标题】:how to save multiple Cell array values in one .csv file如何将多个元胞数组值保存在一个 .csv 文件中
【发布时间】:2023-03-24 11:45:02
【问题描述】:

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

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

clc
clear all

myFolder = 'C:\Users\USER\Desktop\PixROIDirectory\PixelLabelData_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 %s\n', 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

【问题讨论】:

    标签: matlab csv nested-loops file-handling cell-array


    【解决方案1】:

    试试 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,'%i\n',A(i)); % print each integer, then a line break \n
    end
    fclose(fid);                   % close the file for writing
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2011-07-17
      相关资源
      最近更新 更多