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

Matlab 如何使用一个矩阵沿Z轴改变一个变量来绘制pcolor样式的三维绘图?,matlab,plot,3d,Matlab,Plot,3d,我得到RFM方阵大小(64*64)作为x和h变量的函数,如下所示。x=由(pX2)组成的输入信号,其中p可以是任意大小,h=每个RFM矩阵的阈值(1X1)x是相同的常量值。比如说,h将在这个范围内,h=[0:0.2:1] RFM=函数(x,h) x=rand(100X2)和h_1=0然后我将得到(64X64)矩阵的RFM_1 x相同,x=rand(100X2)和h2=0.3然后我将得到(64X64)矩阵的rfm2 x是相同的,x=rand(100X2)和h_3=0.6然后我将得到(64X64)

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

RFM=函数(x,h)

  • x=rand(100X2)
    h_1=0
    然后我将得到(64X64)矩阵的
    RFM_1
  • x相同,x=rand(100X2)
    h2=0.3
    然后我将得到(64X64)矩阵的
    rfm2
  • x是相同的,x=rand(100X2)
    h_3=0.6
    然后我将得到(64X64)矩阵的
    RFM_2
到目前为止,我已在pcolor绘图中绘制了
RFM_1
,并且对于每个
RFM
值,我已使用
pcolor
绘图绘制

我希望RFM矩阵的3d绘图采用
pcolor
样式,并在Z轴上具有不同的
h
功能。它应该查找每个
RFM
矩阵图是否一个叠在另一个上面?如何在MATLAB中执行此操作?

预期的输出图应该有点如下所示。这里,图中只绘制了一个带有
h\u 1
矩阵的
RFM\u 1
。我希望
RFM\u 2
矩阵位于
h\u 2=0.5
处,以此类推,每个矩阵都以
pcolor
样式绘制


我在这里共享了所需的代码。您可以使用
test.m
文件检查上述功能

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

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

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

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

请提供一个例子。请提供一个例子。这还不够。如图所示,线性关系(乘法)可获得三维数据。我更新了我的问题,更加清晰(我希望如此)。请再次检查,如果可能,请告诉我解决方案。谢谢,不完全是这样。如图所示,线性关系(乘法)可获得三维数据。我更新了我的问题,更加清晰(我希望如此)。请再次检查,如果可能,请告诉我解决方案。非常感谢。