Creating a matrix row by row with for loop how?

2 vues (au cours des 30 derniers jours)
jessy
jessy le 15 Fév 2013
So I'm trying to figure out a way to create a matrix of x by y. Say x =[1 2 3 ] and y = [5 6 7 9 10 11]. I'm trying to get my script to shift the longest array y,to the right according to the length of x. So my matrix would look like this:
Newy =[5 6 7 8 9 10 11 0 0;
0 5 6 7 8 9 10 11 0;
0 0 5 6 7 8 9 10 11].
I know how to iterate the y array in respect to the length of x by doing :
y(mod((1:end)-i-1,end)+1)
I just can't figure out how to create a matrix row by row, I tried:
y1=[y zeros(1,length(x)-1)];
For i= 0:length(x)-1
y1(i,:) =y(mod((1:end)-i-1,end)+1);
But I keep generating errors . Any help would be much appreciated!
  1 commentaire
Azzi Abdelmalek
Azzi Abdelmalek le 15 Fév 2013
Modifié(e) : Azzi Abdelmalek le 15 Fév 2013
y = [5 6 7 9 10 11].
Why |[5 6 7 8 9 10 11 0 0; ?

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 15 Fév 2013
Try this:
x =[1 2 3 ]
y = [5 6 7 9 10 11]
ly = length(y);
y1 = zeros(length(x), max(x)+ly-1)
for row = 1 : length(x)
y1(row, x(row):x(row)+ly-1) = y;
end
y1
In the command window:
y1 =
5 6 7 9 10 11 0 0
0 5 6 7 9 10 11 0
0 0 5 6 7 9 10 11
(I hope I'm not allowing you to cheat by doing your homework for you!)

Plus de réponses (1)

jessy
jessy le 15 Fév 2013
Thanks a lot!i just couldn't wrap my head around it this really helped.
  1 commentaire
Image Analyst
Image Analyst le 15 Fév 2013
If you're question is answered, please mark it as "Answered"

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by