如何在matlab中保存通过for循环生成的数据?

Posted

技术标签:

【中文标题】如何在matlab中保存通过for循环生成的数据?【英文标题】:how to save data that is generated via for loop in matlab? 【发布时间】:2017-05-17 20:12:43 【问题描述】:

我需要一种方法来保存通过 for 循环生成的数据。为了简单说明,首先我生成一个 5*10 的矩阵 - 在第二次迭代中重复该过程并生成另一个 5*10 矩阵(**注意也许有些行需要为空)(我的意思是在第二次迭代中第 3 行是空的)并且第二个矩阵应该连接第一个矩阵并制作 5*20 矩阵。这在 excel 中是可能的。但我需要更快的方法来保存数据?可以使用哪个表/数据集/...????

[data,header] = xlsread('E:\TEST\chozen_font_data.xlsx','font');
font_data = data(:,1);
a = 'C:\Users\S.R.P\Desktop\ouput';
A = dir(fullfile(a));
isub = [A(:).isdir];
nameFolds = A(isub).name';
nameFolds(ismember(nameFolds,'.','..')) = [];

for n_fol = 1:numel(nameFolds)
  name_sub_fold = dir(fullfile(a,nameFoldsn_fol,'*.png'));
  for n_sub = 1: numel( name_sub_fold )
     [~,~,image] = 
     imread(fullfile(a,nameFoldsn_fol,name_sub_fold(n_sub).name));
     image=im2bw(image);
     [ image ] = Crop_AroundAllComponent( image );
     name_font = regexprep(name_sub_fold(n_sub).name,'[^0-9]','');
     co = find( font_data == str2num( name_font)); 
     area  = area_calculation( image );
     md = matrix_density_calculation( image );
     [ num ] = DisconnectedComponent_calc( image );
     d=area,md,num;
     [s,m] = xlswrite('E:\TEST\chozen_font_data.xlsx', d, 'font', 
     strcat('GB',num2str(co)));
     end
     end

【问题讨论】:

【参考方案1】:

要在 matlab 中连接 2 个矩阵,您可以使用方括号连接表示法。像这样:

row1 = zeros(10, 5);   % 10 by 5 row
row2 = ones(10, 5);    % another 10 by 5 row
total = [row1; row2];  % 20 by 5 combination

如果您想使用 for 循环执行此操作,您可以在每次迭代时添加一个新行。例如:

start = 0;
end = 5;
result = [];
for i = start:end
    row = ...        % get the new row here
    result = [result; row];
end

【讨论】:

这不是我的答案

以上是关于如何在matlab中保存通过for循环生成的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在matlab中保存不同的立方体变量?

从 for 循环 matlab 内部生成的变量分配向量值

matlab 二维矩阵for循环逐行赋值

Matlab:迭代循环

如何将在 for 循环中生成的多个图形而不是 SUBPLOTS 保存为一个图形? [复制]

附加在 for 循环中生成的 pandas 数据帧