Below is my code in which i am considering data file fb2010. At the end I have a matrix "resd". Now I want to add another three file fb2020, fb2030, fb2040. The code should be the same but including other three data files. At the end i should have four matrix like "resd"(including resd). So how to apply for loop. I tried to apply but it 's not working. Thanks in advance.
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

 채택된 답변

Matt J
Matt J 2015년 8월 3일
편집: Matt J 2015년 8월 3일

0 개 추천

Files={'fb2010','fb2020', 'fb2030', 'fb2040'};
for k=1:length(Files);
S=load(Files{i});
x = S.(Files{i})(3:1502,:);
....
for i = 3:1500
resd(i,:,k) = res3(i,:)./res3(1,:);
end
end

댓글 수: 2

Matt J
Matt J 2015년 8월 3일
편집: Matt J 2015년 8월 3일
Better. Replace the inner loop
for i = 3:1500
resd(i,:,k) = res3(i,:)./res3(1,:);
end
with a bsxfun operation,
resd(3:1500,:,k ) = bsxfun(@rdivide,res3(3:1500,:),res3(1,:));
Mayank Lakhani
Mayank Lakhani 2015년 8월 4일
Thanks Matt for the Answer.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2015년 8월 3일

댓글:

2015년 8월 4일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by