Problem for creating matrix with loop

4 Ansichten (letzte 30 Tage)
sermet
sermet am 15 Jan. 2014
Kommentiert: Kelly Kearney am 16 Jan. 2014
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?

Akzeptierte Antwort

Kelly Kearney
Kelly Kearney am 15 Jan. 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 Kommentare
sermet
sermet am 15 Jan. 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 am 16 Jan. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 15 Jan. 2014
Bearbeitet: Azzi Abdelmalek am 15 Jan. 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 Kommentare
sermet
sermet am 15 Jan. 2014
Bearbeitet: Azzi Abdelmalek am 15 Jan. 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 am 15 Jan. 2014
Bearbeitet: Azzi Abdelmalek am 15 Jan. 2014
k=1;
for i=2:10
k=k+1;
B{k}=A(1:i,:)
end
B{2}
B{3}

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by