matlab調用jmathplot的jar方法

jmathtool是一個非常不錯的開源jar用三維,二維等繪圖的java工具包。下面舉例說明如何在matlab調用jmathtool的繪圖方法而並非使用matlab自帶的繪圖工具。一下就以三維,二維繪圖類爲例:
下面是編寫的jplot.m

function cmdtest=jplot(data,varargin)
% Usage: jplot.<sh|bat> <-2D|-3D> [-l <INVISIBLE|NORTH|SOUTH|EAST|WEST>]
% [options] <ASCII file (n rows, m columns)> [[options] other ASCII
% file][-l <INVISIBLE|NORTH|SOUTH|EAST|WEST>] giving the legend
% position[options] are:
% -t <SCATTER|LINE|BAR|HISTOGRAM2D(<integer h>)|HISTOGRAM3D(<integer h>,
% <integer k>)|GRID3D|CLOUD2D(<integer h>,<integer k>)|CLOUD3D(
% <integer h>,<integer k>,<integer l>)> type of the plot
% SCATTER|LINE|BAR: each line of the ASCII file contains coordinates
% of one point.
% HISTOGRAM2D(<integer h>): ASCII file contains the 1D sample (i.e.
% m=1) to split in h slices.
% HISTOGRAM3D(<integer h>,<integer k>): ASCII file contains the 2D
% sample (i.e. m=2) to split in h*k slices (h slices on X axis and k
% slices on Y axis).
% GRID3D: ASCII file is a matrix, first row gives n X grid values,
% first column gives m Y grid values, other values are Z values.
% CLOUD2D(<integer h>,<integer k>): ASCII file contains the 2D sample
% (i.e. m=2) to split in h*k slices (h slices on X axis and k slices
% on Y axis), density of cloud corresponds to frequency of X-Y slice
% in given 2D sample.
% CLOUD3D(<integer h>,<integer k>,<integer l>): ASCII file contains
% the 3D sample (i.e. m=3) to split in h*k*l slices (h slices on X
% axis, k slices on Y axis, l slices on Y axis), density of cloud
% corresponds to frequency of X-Y-Z slice in given 3D sample.
% -n name name of the plot
% -v <ASCII file (n,3|2)> vector data to add to the plot
% -q<X|Y|Z>(<float Q>) <ASCII file (n,1)> Q-quantile to add to the
% plot on <X|Y|Z> axis. Each line of the given ASCII file contains the
% value of quantile for probvability Q.
% -qP<X|Y|Z> <ASCII file (n,p)> p-quantiles density to add to the plot
% on <X|Y|Z> axis. Each line of the given ASCII file contains p values.
% -qN<X|Y|Z> <ASCII file (n,1)> Gaussian density to add to the plot on
% <X|Y|Z> axis. Each line of the given ASCII file contains a
% standard deviation.

% Sqniu 09/24/09
% Modified:
% $Revision:0.1 $Date: 2009/09/24 11:05:56 $
%--------------------------------------------------------------------------
if nargin < 1
    error('MATLAB:jplot:Nargin','Requires at least 1 input arguments.');
end
[row,col]=size(data);
if col==2
    basestr='java -cp jmathplot.jar org.math.plot.PlotPanel -2D -l SOUTH ';
elseif col==3
    basestr='java -cp jmathplot.jar org.math.plot.PlotPanel -3D -l SOUTH ';
else
    error('MATLAB:jplot:data',' The matrix with two columns or three columns.');
end

filetemp=['jplot','.txt'];

disp(varargin)
if length(varargin)<1
    dlmwrite(filetemp,data,'delimiter',' ','newline','pc');
    runstr=[basestr,filetemp];
elseif length(varargin)>=1
    varargin=strcat(' ',varargin);
    drawflag=cell2mat(varargin);
    dlmwrite(filetemp,data,'delimiter',' ','newline','pc');
    runstr=[basestr,drawflag,' ',filetemp];
else
    error('MATLAB:jplot:varargin','Input arguments is not right.');
end
disp(runstr)
cmdtest=dos(runstr);
delete(filetemp);
end

 
例圖:
>>jplot(rand(10,2),'-t line',' -n data')



>>jplot(rand(10,3),'-t bar',' -n data')


>>jplot(rand(10,3))



需要的資源jmathplot.jar 該jar包已經上傳 須將該文件下載改名爲jmathplot.jar即可用。將jar和上面的jplot.m文件放在同一個文件夾下,並將運行路徑置於該文件夾路徑。然後可以按照上圖所示例子在matlab命令窗口調用,也可在其他m文件中調用。jplot.m的調用接口已經規範化爲matlab的格式。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章