I have 4 vectors as shown below. I want to create a matrix that list all the possible combinations with the condition that
x = [0 1 2 3 4 5 6]
x1 = [0 3 6]
x2 = [0 3 6]
x3 = [0 3 6]

 採用された回答

John D'Errico
John D'Errico 2023 年 2 月 10 日
編集済み: John D'Errico 2023 年 2 月 10 日

1 投票

Easy enough.
x = 0:6;
[x1,x2,x3] = ndgrid([0 3 6]);
x123 = [x1(:),x2(:),x3(:)];
ind = ismember(sum(x123,2),3*x);
x123(ind,:)
ans = 27×3
0 0 0 3 0 0 6 0 0 0 3 0 3 3 0 6 3 0 0 6 0 3 6 0 6 6 0 0 0 3
You want to be careful that you work in INTEGER arithmetic though. This is why I multiplied x by 3, instead of dividing the sum by 3.

1 件のコメント

Nicolas Leport
Nicolas Leport 2023 年 2 月 10 日
編集済み: Nicolas Leport 2023 年 2 月 10 日
Thanks, how do I add the corresponding x value to that matrix?

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Operating on Diagonal Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by