I have asked the question as http://www.mathworks.com/matlabcentral/answers/3748-how-to-make-a-loop-for-end. Matt fig helped me this: x=[1.6,2.7,3.5,4.4,5.2,6.8,7.9,8.4,9.1,10.2]; N = length(x); % The largest number. Change to whatever... a = 1; % The starting point. Change to 3,5... whatever S = 3; n = zeros(1,floor((N-a)/(S))+1); % Pre-allocate the array... for ii = 1:length(n) n(ii) = x(S*(ii)+(a-S)); end Now,I want to make a new loop for S (S=1:length(x)),that gets the value of S from 1 to length(x).So I can get every value of n when the S is different. How are the codes about?

1 Kommentar

Andrew Newell
Andrew Newell am 22 Mär. 2011
@Tian, it would really help those of us who answer your questions if you formatted your code: one line per command, indent two spaces.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Matt Fig
Matt Fig am 22 Mär. 2011

0 Stimmen

L = length(x)
N = L; % The largest number. Change to whatever...
a = 3; % The starting point. Change to 3,5... whatever
T = cell(1,L); % Store everything in a cell array.
for jj = 1:L
S = jj;
n = zeros(1,floor((N-a)/(S))+1); % Pre-allocate the array...
for ii = 1:length(n)
n(ii) = x(S*(ii)+(a-S));
end
T{jj} = n;
end
T{:}
You should go back and format your question. Is there a particular reason why you want to do this with loops?

1 Kommentar

Tian Lin
Tian Lin am 22 Mär. 2011
In the beginning,I only wanted to do a loop to get some data from matrix.With your help,I find some questions about changing the conditions of loops,so I asked again and again.Sorry for you,there isn't any particular reason.Next time,I will think over and then ask a question.By the way,I will say thank you agian.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by