Given a vector
Vec = [ 0 1 2 3 4 5 6 7 8 9 ]
I want to use the vec value to obtain a matrix output as
0 1 2 3 4 5 6 7 8 9
1 0 1 2 3 4 5 6 7 8
2 1 0 1 2 3 4 5 6 7
3 2 1 0 1 2 3 4 5 6
mat = 4 3 2 1 0 1 2 3 4 5
5 4 3 2 1 0 1 2 3 4
6 5 4 3 2 1 0 1 2 3
7 6 5 4 3 2 1 0 1 2
8 7 6 5 4 3 2 1 0 1
9 8 7 6 5 4 3 2 1 0
Your input is highly appreciated. Thanks in advance

 採用された回答

Andrei Bobrov
Andrei Bobrov 2018 年 11 月 23 日

0 投票

toeplitz(vec)

1 件のコメント

Evans Gyan
Evans Gyan 2018 年 11 月 23 日
Thank you Andrei. You really saved me the headache. It worked

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

その他の回答 (1 件)

John D'Errico
John D'Errico 2018 年 11 月 23 日
編集済み: John D'Errico 2018 年 11 月 23 日

0 投票

What does that even remotely have to do with a covariance matrix? :)
Now, IF your goal really is just to create that array, then try this:
vec = 0:9;
abs(vec - vec')
ans =
0 1 2 3 4 5 6 7 8 9
1 0 1 2 3 4 5 6 7 8
2 1 0 1 2 3 4 5 6 7
3 2 1 0 1 2 3 4 5 6
4 3 2 1 0 1 2 3 4 5
5 4 3 2 1 0 1 2 3 4
6 5 4 3 2 1 0 1 2 3
7 6 5 4 3 2 1 0 1 2
8 7 6 5 4 3 2 1 0 1
9 8 7 6 5 4 3 2 1 0
The above will work as long as you are using at least R2016b or MATLAB. Older releases will require tools like bsxfun, or even meshgrid.
It is a bit unclear because again, this has nothing to do with a covariance matrix, except that both are symmetric matrices.

カテゴリ

質問済み:

2018 年 11 月 23 日

コメント済み:

2018 年 11 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by