如何在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循环生成的数据?的主要内容,如果未能解决你的问题,请参考以下文章