【问题标题】:How do you plot the 3-D plot for pcolor style using one matrix with varying one variable along Z-axis?如何使用沿 Z 轴改变一个变量的一个矩阵绘制 pcolor 样式的 3-D 图?
【发布时间】:2015-12-16 13:13:23
【问题描述】:

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

RFM = function(x,h)

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

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

我想要 pcolor 样式的 RFM 矩阵的 3d 图,并在 Z 轴上具有 h 的不同功能。它应该寻找每个RFM 矩阵图堆叠在另一个之上?我如何在 MATLAB 中做到这一点?

预期的输出图应如下所示。此处,该图中仅绘制了一个RFM_1h_1 矩阵。我希望RFM_2 矩阵在h_2=0.5 等处以pcolor 样式绘制。

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

【问题讨论】:

标签: matlab plot 3d


【解决方案1】:

如果我理解正确,这里有一个方法:

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);

【讨论】:

  • 不完全是。正如您所展示的线性关系(乘法)以获得 3 维数据。我已经更清楚地更新了我的问题(我希望)。请再次检查,如果可能,请告诉我解决方案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
相关资源
最近更新 更多