MATLAB - 离散3D干线图?

时间:2014-03-17 21:28:32

标签: matlab plot

我正在尝试绘制离散 3D词干图,其中xy是整数,z是概率。 每个xy对应z值。

为了便于演示,我们假设他们有以下对应关系。

x = [1 2 3 4 5];
y = [1 2 3 4 5];
z = [0.1 0.1 0.1 0.1 ... 0.1]; % totally 25 terms
% 1st z value corresponds to the pair (1st_x_val, 1st_y_val) 

我怎么能在MATLAB中做到这一点?

2 个答案:

答案 0 :(得分:2)

<强>代码

x = [1 2 3 4 5];
y = [1 2 3 4 5];
z = repmat(0.25,[1 25]);
z = reshape(z,[5 5]);

[x,y] = meshgrid(x,y);
stem3(x,y,z)

基本上使用meshgrid,您可以在所有x和所有y之间进行线性组合,从而创建25个组合,其中包含25个z。

enter image description here

编辑-1:有关如何在2D X-Y网格上映射线性z的说明

测试代码

x =  1:3;
y = 1:5;
z = 1:15;
z = reshape(z,[numel(y) numel(x)]);

[x,y] = meshgrid(x,y);
stem3(x,y,z)
xlabel('X -AXIS')
ylabel('Y -AXIS')

<强>输出

enter image description here

正如我们可以看到索引在这里如何工作 - 对于前五个值,Xy保持相同,从1到5不等,接下来的5个值依此类推。因此,如果想要在2D XY网格上映射线性z,则重新整形将第一个元素作为y中的元素数量,第二个元素将是x的对应数字。

答案 1 :(得分:0)

这有什么问题?

x = [1 2 3 4 5];
y = [1 2 3 4 5];
[X,Y]=meshgrid(x,y);
Z=0.1*ones(size(X));
stem3(X,Y,Z)

我不明白连续/离散之间的区别在这里有何意义?