Create a matrix of average Values from a Vector

Hi all,
It would be great if you could help me solve this problem!
I have a vector of 5 numbers [2 4 8 9 12] and want to create a matrix with the size 5*5 containing the average of each of the respective pairs of numbers in the corresponding field of the matrix. In this case it would be
[2 3 5 5.5 7;
3 4 6 6.5 8;
5 6 8 8.5 10;
5.5 6.5 8.5 9 10.5;
7 8 10 10.5]
How could I implement this with code? Would this be the right implementation?
vector = [2 4 8 9 12];
for i = 1:5
for j = 1:5
matrix(i,j) = (vector(i) + vector(j))/2;
end
end
matrix
matrix = 5×5
2.0000 3.0000 5.0000 5.5000 7.0000 3.0000 4.0000 6.0000 6.5000 8.0000 5.0000 6.0000 8.0000 8.5000 10.0000 5.5000 6.5000 8.5000 9.0000 10.5000 7.0000 8.0000 10.0000 10.5000 12.0000
Thanks!
Johanna

1 件のコメント

Torsten
Torsten 2022 年 1 月 2 日
編集済み: Torsten 2022 年 1 月 2 日
Yes.
Or simply
matrix = 0.5*(vector+vector.')

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

回答 (1 件)

KSSV
KSSV 2022 年 1 月 2 日

0 投票

The same implementation without loop:
matrix = (vector+vector')/2 ;
When you have used a loop, you need to initilaizethe matrix into zeros.
matrix = zeros(5) ;

カテゴリ

ヘルプ センター および File ExchangeOperators and Elementary Operations についてさらに検索

タグ

質問済み:

2022 年 1 月 2 日

編集済み:

2022 年 1 月 2 日

Community Treasure Hunt

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

Start Hunting!

Translated by