如何显示两组值的二项式组合?

时间:2015-07-29 11:59:48

标签: matlab matrix combinations

我有2套,

set1=0.05:0.05:2.5; 
set2=2.55:0.05:5;

我想在Matlab中显示set1set2的所有组合,理想情况下是矩阵类型格式。由于size(set1)size(set2)都是 1 -by- 50 ,因此组合矩阵的维度应 50 -by- 50

2 个答案:

答案 0 :(得分:1)

您可以使用meshgrid将所有组合作为沿网格轴的两个矩阵。

set1=0.05:0.05:2.5;
set2=2.55:0.05:5;
[A,B] = meshgrid(set1,set2);

一个简单的例子:

figure();
a = 1:4;
b=1:1:5;
[A,B] = meshgrid(a,b);
Z = zeros(5,4);
mesh(A,B,Z,'EdgeColor','black')
axis equal;
h1 = gca;
h1.XTick = [1 2];
h1.YTick = [1 2 3];
xlabel('meshgrid Output')    

enter image description here

A和B是包含所有现有组合的输出坐标数组。

答案 1 :(得分:0)

如果您希望输出为单元格数组,其中每个元素都包含组合的元素对,则可以使用arrayfun:

[A, B] = meshgrid(set1, set2);
combs = arrayfun(@(x, y) [x y], A, B, 'UniformOutput', 0);

如果您希望输出为50x50x2阵列,其中组合位于combs(i, j, :),您可以将A和B追加在一起:

[A, B] = meshgrid(set1, set2);
combs = cat(3, set1, set2);