如何使用一个沿Z轴变化一个变量的矩阵绘制pcolor样式的三维图?

时间:2015-12-16 13:13:23

标签: matlab plot 3d

我得到RFM方阵size(64*64)作为xh变量的函数,如下所示。 x =由(pX2)组成的输入信号,其中p可以是任何大小,h =每个RFM矩阵的阈值(1X1)。 x是所有变化h的相同常量值。让我们说例如h将在这个范围内,h = [0:0.2:1]

  

RFM = function(x,h)

  • x=rand(100X2)h_1 = 0然后我会得到RFM_1(64X64)矩阵。
  • x is same, x=rand(100X2)h_2 = 0.3然后我会得到RFM_2(64X64)矩阵。
  • x is same, x=rand(100X2)h_3=0.6然后我会得到RFM_2(64X64)矩阵

到目前为止,我已经在pcolor图中绘制了RFM_1,并且还绘制了用RFM图绘制的每个pcolor值。

我想要pcolor样式的RFM矩阵的3d图,其中Z轴的h功能不同。它应该寻找每个RFM矩阵图堆叠在一起?我怎么能在MATLAB中做到这一点?

预期的产出图应该如下所示。此处,此图中只绘制了一个RFM_1 h_1矩阵。我希望在RFM_2处使用h_2=0.5矩阵,依此类推,每个都使用pcolor样式。 ![enter image description here

我在这里分享了所需的代码。您可以使用test.m文件来检查上述功能。 https://drive.google.com/folderview?id=0B0sYDrkkEHQ-b25GMlphUEFRcDA&usp=sharing

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话,

这是一种方式:

data=peaks(64); % fake data
t=-0:8; % some thersholds

tdata=bsxfun(@gt,data,permute(t,[3 1 2])); % 3d threshold
data3=repmat(data,[1 1 numel(t)]); %just copy data to the 3rd dim
A=data3.*tdata;
A(A==0)=NaN; % this will eliminate showing the zero values

% plottning
h=slice(A,[],[],1:numel(t));
set(h,'EdgeColor','none','FaceColor','interp');

alpha(0.5);

enter image description here