我有2套,
set1=0.05:0.05:2.5;
set2=2.55:0.05:5;
我想在Matlab中显示set1
和set2
的所有组合,理想情况下是矩阵类型格式。由于size(set1)
和size(set2)
都是 1 -by- 50 ,因此组合矩阵的维度应 50 -by- 50
答案 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')
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);