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)
然后我将得到(64X64)矩阵的h_1=0
李>RFM_1
和x相同,x=rand(100X2)
然后我将得到(64X64)矩阵的h2=0.3
李>rfm2
和x是相同的,x=rand(100X2)
然后我将得到(64X64)矩阵的h_3=0.6
RFM_2
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);
请提供一个例子。请提供一个例子。这还不够。如图所示,线性关系(乘法)可获得三维数据。我更新了我的问题,更加清晰(我希望如此)。请再次检查,如果可能,请告诉我解决方案。谢谢,不完全是这样。如图所示,线性关系(乘法)可获得三维数据。我更新了我的问题,更加清晰(我希望如此)。请再次检查,如果可能,请告诉我解决方案。非常感谢。