我有一个包含140(* .txt)文件的文件夹,我需要在矩阵中保存这些文件名和for循环中的进程结果。我试过这个:
class= fullfile('*.txt');
D = dir(class);
%% for-loop
data=zeros(length(D),2);
for kk=1:length(D);
blockname = D(kk).name;
%process > result(kk);
data(kk,1)=result(kk);
data(kk,2)= blockname;
end
但显示此错误消息
data(kk,2)= blockname; ???订阅的分配维度不匹配。
由于
blockname =
block_100.txt
我不知道如何解决它。谢谢你的帮助
答案 0 :(得分:0)
在MATLAB中,不能在矩阵中混合数字和字符串。你必须使用单元格这样做。尝试使用{}而不是()编写相同的代码。
data{kk,1} = result(kk);
data{kk,2} = blockname;
答案 1 :(得分:0)
我不知道“过程的结果”是什么意思,但是,你的问题的解决方案之一是
clear all
clc
D = dir('*.txt');
data = cell(length(D), 2);
for kk=1:length(D);
blockname = D(kk).name;
%process > result(kk);
data{kk,1}= kk; %<-- replace kk with whatever you mean by the result of the process
data{kk,2}= blockname;
end
data
结果是
data =
[1] 'AA.txt'
[2] 'BB.txt'
[3] 'CC.txt'
要访问数据元素,请对第一个元素执行data(1,1)
,依此类推。
您可以在不使用循环的情况下执行解决方案,因此,另一种解决方案是
clear all
clc
D = dir('*.txt');
data = cell(length(D), 2);
data(:,1) = {1}; %<-- replace 1 with whatever the result of the process is
data(:,2) = {D(:).name};
data
结果是
data =
[1] 'AA.txt'
[1] 'BB.txt'
[1] 'CC.txt'