# How can i concatenate array of 3 to form single matrix?

1 ビュー (過去 30 日間)
Aliff Zin 2017 年 1 月 29 日

i am very new to matlab, so sorry if i sounded stupid
i just need to get an output of 3 array from my looping and form one single 3d matrix
for example
100 array x 10 array x 12 array and store it as 3d matrix
so that the size will be : 100 x 10 x 12
any idea?
##### 1 件のコメント表示非表示 なし
Jan 2017 年 1 月 29 日
An important detail is missing: I assume "100 array" means a vector of the size [1 x 100] or [100 x 1]. Then combining these vectors need to apply a mathematical operation, multiplication or addition etc. Please post some example input data and the wanted output, e.g. with the sizes 2,3,4.

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

### 採用された回答

Jan 2017 年 1 月 29 日

A bold guess:
x = 1:100;
y = 1:10;
z = 1:12;
Result = reshape(x, [], 1, 1) + reshape(y, 1, [], 1) + reshape(z, 1, 1, []);
Here I assumes, that you want to combine the values by an addition.
This runs in R2016b. The reshape commands are formulated equivalently for demonstration purposes only: In the first you can omit the trailing 1, the second is not needed because y has the wanted shape already.
For earlier version, the addition of arrays with different shapes required bsxfun:
Result = bsxfun(@plus, reshape(x, [], 1, 1), ...
bsxfun(@plus, reshape(y, 1, [], 1), reshape(z, 1, 1, [])));
##### 1 件のコメント表示非表示 なし
Aliff Zin 2017 年 1 月 29 日
Guess not all superheroes wear capes, thank you @Jan Simon !

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

### その他の回答 (1 件)

Andrei Bobrov 2017 年 1 月 29 日
[xx,yy,zz] = ndgrid(x,y,z);
res = xx+yy+zz

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

### カテゴリ

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by