Vyhledat témata bez odpovědí | Zobrazit aktivní témata Právě je sob 19 říj 2019 23:40



Odpovědět na téma  [ Příspěvků: 2 ] 
 Matlab 3D graf 
Autor Zpráva
Odpovědět s citací
Příspěvek Matlab 3D graf
Čau, potřeboval bych poradit s 3D grafem a jeho legendou. Matlab mi vykreslí tenhle graf. Podle hodnot, který zadávam by u pravýho předního rohu měla být hodnota 105, což podle legendy odpovídá červené ale matlab to vykreslí modře. příkládám i zdroják skriptu. Díky
http://postimg.org/image/n6flr6n3h/
Obrázek

Kód:
function grafy()
%CREATEFIGURE2(XDATA1,YDATA1,ZDATA1,CDATA1)
%  XDATA1:  surface xdata
%  YDATA1:  surface ydata
%  ZDATA1:  surface zdata
%  CDATA1:  surface cdata

%  Auto-generated by MATLAB on 31-Mar-2016 14:58:55

% Create figure
figure1 = figure('PaperType','a4letter',...
    'PaperSize',[20.98404194812 29.67743169791]);

% Create axes
axes1 = axes('Parent',figure1,'YTick',[1 2 3 4 5 6 7 8 9 10 11 12 13],...
    'YDir','reverse',...
    'XTick',[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17]);
% Uncomment the following line to preserve the X-limits of the axes
 xlim(axes1,[1 17]);
% Uncomment the following line to preserve the Y-limits of the axes
ylim(axes1,[1 13]);
view(axes1,[-21.5 10]);
grid(axes1,'on');
hold(axes1,'all');

x = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17];
y = [1 2 3 4 5 6 7 8 9 10 11 12 13];
z = [NaN   NaN   NaN   100.376   101.188   100.998   100.736   102.039   101.726   101.637   101.987   101.044   100.305   99.4897   101.188   NaN   NaN;
NaN   NaN   NaN   96.9373   97.5755   97.0069   97.2197   97.819   98.4143   97.8119   97.7761   97.0978   97.9303   97.2672   96.877   NaN   NaN;
NaN   NaN   NaN   99.9424   98.5086   98.0223   98.3335   99.1101   98.923   98.7282   98.6497   100.462   99.9785   98.7396   98.6331   96.7115   101.07;
NaN   NaN   NaN   98.5264   99.0431   98.6539   98.5822   98.9731   99.2108   98.5985   98.7153   98.763   99.2379   99.2016   99.8308   96.6149   98.7951;
101.284   97.8011   NaN   97.4906   98.5793   99.0925   98.3158   98.9317   98.6283   98.3831   97.6794   97.2946   97.9944   100.088   99.2032   96.4845   98.8104;
99.5172   97.16   99.6877   97.5056   96.9406   97.5156   98.8599   99.0387   98.8283   98.8142   98.5085   97.9316   99.2332   98.17   98.857   97.2892   99.8239;
100.381   98.0949   100.595   99.959   98.5387   98.7681   99.5175   99.5399   98.7403   99.5   98.3207   98.7973   99.324   97.9408   99.2281   98.1324   100.978;
101.36   98.2358   99.7899   99.4953   98.6511   98.6293   100.223   98.7137   98.7702   100.01   99.4078   98.0121   98.4202   98.5211   100.631   97.8223   101.477;
100.605   97.6913   98.1178   98.48   98.4178   98.55   99.4509   99.3719   99.4123   100.717   99.0462   97.7131   98.4129   99.6342   100.539   98.8821   101.165;
101.514   98.5623   98.5479   98.55   99.3652   98.1601   98.7062   99.2355   99.204   98.8111   97.6582   97.0651   98.1789   97.4932   99.9659   98.2363   100.29;
104.326   99.6058   99.6954   99.6173   98.9861   98.8137   99.0708   98.5242   97.7725   98.2812   98.5574   98.2968   97.8639   98.1403   100.537   98.1532   98.8802;
NaN   NaN   NaN   98.1334   98.021   97.5562   97.8515   97.8349   97.1122   97.9036   98.3832   97.2412   96.6477   96.523   97.6749   97.0945   100.38;
NaN   NaN   103.684   101.183   101.794   101.168   100.532   101.238   101.018   101.403   101.398   100.888   101.744   101.159   100.034   102.233   104.941;

];

% Create surf
surf(x,y,z,'Parent',axes1);

% Create zlabel
zlabel({'dB'});

% Create title
title('200 Hz pro R1');

% Create colorbar
colorbar('peer',axes1);


čtv 31 bře 2016 15:32
Nováček
Nováček

Registrován: stř 13 dub 2016 00:54
Příspěvky: 1
Odpovědět s citací
Příspěvek Re: Matlab 3D graf
Ahoj Marku,
funkce surf() vykresluje čtvercovou síť, jejíž výška ve vrcholech odpovídá hodnotám Tvé matice z. Barva se pak nastavuje ploškám MEZI těmito vrcholy. Ve výchozím stavu se jedná o jedinou barvu, která je dána aritmetickým průměrem hodnot okolních vrcholů, v Tvém případě tedy:
Kód:
   97.0945  100.3800
  102.2330  104.9410


Hodnota 104.9 je pak vykompenzována hodnotou 97, takže se ploška výrazněji nevybarví. MATLAB ale umí barvu měnit i v rámci dané plošky nastavením interpolace:
Kód:
surf(x,y,z,'Parent',axes1,'FaceColor','interp');

Jinak doporučuji zjemnění vodicích linek přidáním nastavením parametru 'LineStyle' na ':'.
http://postimg.org/image/3n3m8tvg1/

Vláďa


stř 13 dub 2016 01:25
Profil
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odpovědět na téma   [ Příspěvků: 2 ] 

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 9 návštevníků


Můžete zakládat nová témata v tomto fóru
Můžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.
Český překlad – phpBB.cz