Creating a matrix row by row with for loop how?

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 件のコメント

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 2 月 15 日
編集済み: Azzi Abdelmalek 2013 年 2 月 15 日
y = [5 6 7 9 10 11].
Why |[5 6 7 8 9 10 11 0 0; ?

サインインしてコメントする。

 採用された回答

Image Analyst
Image Analyst 2013 年 2 月 15 日

0 投票

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!)

その他の回答 (1 件)

jessy
jessy 2013 年 2 月 15 日

0 投票

Thanks a lot!i just couldn't wrap my head around it this really helped.

1 件のコメント

Image Analyst
Image Analyst 2013 年 2 月 15 日
If you're question is answered, please mark it as "Answered"

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by