倍频程/matlab方程从二维到三维的转换

倍频程/matlab方程从二维到三维的转换,matlab,octave,Matlab,Octave,将二维代码/绘图转换为三维代码/绘图 我可以使用下面的代码创建一个二维绘图,生成下面的绘图。但是我怎样才能把这个2D图变成3D图呢。我尝试使用meshgrid进行此操作,但它创建的绘图不是三维的,曲线不再显示在绘图中。我在下面包括了我正在使用的2D代码以及它生成的绘图。同样在底部,我展示了3D代码和它在最后产生的错误绘图 代码我尝试使用网格,但它不是在三维和曲线模式不再存在 %---3D non-working code clear all,clf reset,tic,clc, close

将二维代码/绘图转换为三维代码/绘图

我可以使用下面的代码创建一个二维绘图,生成下面的绘图。但是我怎样才能把这个2D图变成3D图呢。我尝试使用meshgrid进行此操作,但它创建的绘图不是三维的,曲线不再显示在绘图中。我在下面包括了我正在使用的2D代码以及它生成的绘图。同样在底部,我展示了3D代码和它在最后产生的错误绘图

代码我尝试使用网格,但它不是在三维和曲线模式不再存在

%---3D non-working code
clear all,clf reset,tic,clc, close all, 
    S=[15.3039,10.3612,7.9153,6.3793,5.3019,4.4955,3.8656,3.3584,2.9405,2.5903,2.2926,2.0367,1.8146,1.6204,1.4496,1.2983,1.1638,1.04377,.93622,.83959,.75256,.67401,.603,.53871,.48045,.42762,.37969,.33619,.29673,.26094,.22852,.19917,.17265,.14874,.12722,.10791,.090664,.075316,.061733,.049793,.039383,.030399,.0227475,.0163414,.0111008,.0069525,.0038286,.0016664,.0004081];
    x = linspace(0,1,10);
    T = 1.12;
    [SS,xx]=meshgrid(S,x); %create meshgrid data

    for bb = 1:length(S)
      z=exp(log(1-xx.^(SS*T))/(SS*T)); %right to left top to bottom
      hold on
      plot(xx,SS,z,'r')
    end
产生错误的3D图像代码


PS:我正在使用类似于matlab的倍频程4.2.2。

我建议使用类似于
surf

y1 = zeros(length(x),length(S));
for ii = 1:length(x)
   for jj = 1:length(S)
      y1(ii,jj) = exp(log(1-x(ii)^(S(jj)*T))/(S(jj)*T));
   end
end
surf(S,x,y1,'faceColor','interp','linestyle','none')
其中:


这是要求一些
“faceColor”、“interp”、“linestyle”、“none”
:D
y1 = zeros(length(x),length(S));
for ii = 1:length(x)
   for jj = 1:length(S)
      y1(ii,jj) = exp(log(1-x(ii)^(S(jj)*T))/(S(jj)*T));
   end
end
surf(S,x,y1,'faceColor','interp','linestyle','none')