Matlab 使用for循环读取多个文件

Matlab 使用for循环读取多个文件,matlab,loops,data-processing,Matlab,Loops,Data Processing,我的代码如下。在代码中,我只计算'fb2010'文件中的数据。我想添加其他文件“'fb2020','fb2030',和'fb2040',并用相同的代码评估它们的数据。我的问题是如何为循环应用,并包含其他数据文件。我尝试过,但被for循环弄糊涂了 load('fb2010'); % loading the data x = fb2010(3:1:1502,:); % y_filt = filter(b,a,x);

我的代码如下。在代码中,我只计算
'fb2010'
文件中的数据。我想添加其他文件“
'fb2020'
'fb2030'
,和
'fb2040'
,并用相同的代码评估它们的数据。我的问题是如何为
循环应用
,并包含其他数据文件。我尝试过,但被
for
循环弄糊涂了

load('fb2010');                                    % loading the data
x = fb2010(3:1:1502,:);
% y_filt = filter(b,a,x);                          % filtering the received signal
y_filt= filter(b,a,x,[],2);
%%%%%%%  fourier transform
nfft = length(y_filt);
res = fft(y_filt,nfft,2)/nfft;
res2 = res(:,1:nfft/2+1);                           %%%% taking single sided spectrum
res3 = fft(res2,[],2);
for i = 3:1:1500                                   %%%% dividing each row by first row.
 resd(i,:) = res3(i,:)./res3(1,:);
end

我假设您的文件是MAT文件,而不是ASCII文件。您可以通过返回a并使用:

如果您使用的是普通ASCII文件,
load
将不会生成结构。但是,这样的文件要简单得多(请参阅
load
/
save
)的文档)。以下代码可能会起作用:

n = 4;
for i = 1:n
    vname = ['fb20' int2str(i) '0']; % Create file/variable name based on index
    s = load(vname);                 % Load data as matrix (overwriting previous s)
    x = s(3:1:1502,:);               % Directly index matrix

    % Rest of your code
    ...
end

最好将文件扩展名添加到
load
命令中,以使代码更具可读性。

我假设您的文件是MAT文件,而不是ASCII文件。您可以通过返回a并使用:

如果您使用的是普通ASCII文件,
load
将不会生成结构。但是,这样的文件要简单得多(请参阅
load
/
save
)的文档)。以下代码可能会起作用:

n = 4;
for i = 1:n
    vname = ['fb20' int2str(i) '0']; % Create file/variable name based on index
    s = load(vname);                 % Load data as matrix (overwriting previous s)
    x = s(3:1:1502,:);               % Directly index matrix

    % Rest of your code
    ...
end

最好将文件扩展名添加到
load
命令中,以使代码更具可读性。

您使用的是什么语言?对不起,我没有提到语言。您使用的是什么语言?对不起,我没有提到语言。它的MatlabHey Horchler,我想为每个数据集创建一个矩阵。那么我该怎么做呢申请。现在我只得到一个metrix resd。?嘿,霍奇勒,我想为每个数据集都有一个矩阵。那么我应该如何申请。现在我只得到一个metrix resd。?