Problem for creating matrix with loop

3 visualizzazioni (ultimi 30 giorni)
A=[1 2 3;4 5 6;7 8 9]
%I wanna create a loop like that
for i=2:3
A(1:i,:)
end
%What I'm trying to do is getting these matrixes from the loop,
A_1= A(2:2,:)
A_2= A(3:2,:)
For retrieve these matrixes from the loop, what equation I should write in the loop?

Risposta accettata

Kelly Kearney
Kelly Kearney il 15 Gen 2014
Your loop and your example aren't the same, since A(3:2,:) is an empty matrix. But I assume you want this:
for ii = 1:10
B{ii} = A(1:ii,:);
end
This won't work with your example A, which only has 3 rows, but I'm assuming your real A must have 10.
But really, as others have mentioned, it seems a little pointless to create these arrays, since using A(1:ii,:) only adds a few keystrokes over B{ii}, and doesn't involve the unnecessary replication of data.
  3 Commenti
sermet
sermet il 15 Gen 2014
lastly I'm explaining my situation;
A=[1 2;3 4;5 6] for example
for i=2:3
A(1:i,:)
end
results;
ans = 1 2 3 4
ans = 1 2 3 4 5 6
How can I spare each of them? I mean when I type ans(2) or ans(1) it should give me the result.
Kelly Kearney
Kelly Kearney il 16 Gen 2014
ans is a temporary variable that gets used any time that you fail to explicitly assign function output to a variable. I showed you how to assign that data to a variable; if you type B{1} or B{2}, you'll see your results.
Although A(1:2,:) does not equal [1 2 3 4]; it is [1 2; 3 4]. If you want the former, it would be
for ii = 2:3
B{ii-1} = reshape(A(1:ii,:)', 1, []);
end

Accedi per commentare.

Più risposte (1)

Azzi Abdelmalek
Azzi Abdelmalek il 15 Gen 2014
Modificato: Azzi Abdelmalek il 15 Gen 2014
What is the purpose of creating other variables, when you can access any part of your matrix, whenever you want.
If you want A(2:2,:) , you don't need to create a variable A_1, just write
A(2:2,:)
Or you can create a cell array B
B{1}=A(2:2,:)
B{2}=A(3:2,:)
  3 Commenti
sermet
sermet il 15 Gen 2014
Modificato: Azzi Abdelmalek il 15 Gen 2014
then retrieve it from the loop. For example,
for i=2:10
A(1:i,:)
end
A2,A3,....A10 must be created from this loop. What I need is how to retrieve these matrixes from this loop.
Azzi Abdelmalek
Azzi Abdelmalek il 15 Gen 2014
Modificato: Azzi Abdelmalek il 15 Gen 2014
k=1;
for i=2:10
k=k+1;
B{k}=A(1:i,:)
end
B{2}
B{3}

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by