Scilab 的繪圖函數(1),scilab繪圖函數
Scilab 的繪圖函數plot 函數
最基本的是 plot 函數,與 matlab 中的plot 函數類似。
xdata = linspace(1,10,50);ydata = sin(xdata);plot(xdata, ydata);
對函數繪圖,不需要事先計算出 ydata,比如下面的例子畫出的結果是相同的。
plot (xdata, sin);
這樣還能節省些記憶體佔用。
如果只設定總的標題,可以這樣操作:
title("My Plot");
如果還要設定XY座標軸的標題,那麼可以這樣:
xtitle("This is a Plot", "x axis", "y axis");
顏色和線型可以通過給plot 添加第三個參數來控制。Legend() 函數可以設定標籤。比如下面的例子:
plot(xdata, sin, "o-r");plot(xdata, cos, "*--y");legend("sin", "cos");
儲存圖片
一幅圖繪製完成之後當然希望能夠儲存到檔案中,scilab 支援相當多的圖片格式,下面這些函數每個對應一種圖片格式。
xs2png |
xs2fig |
xs2pdf |
xs2gif |
xs2svg |
xs2jpg |
xs2ps |
xs2bmp |
xs2emf |
xs2ppm |
如果我們希望將 0 號視窗的圖形儲存為png 格式,那麼可以執行下面的語句。
xs2png(0, "pic.png");
上面提到了視窗號,在繪圖視窗上寫著這個數字。Scilab 同時可以顯示多個映像視窗,通過視窗號來區分現在操作的是哪個繪圖視窗。
很多時候我們希望能夠在映像上添加網格,這個操作在MATLAB很容易實現:
Grid on 開啟網格
Grid off 關閉網格
Scilab 中沒有這樣的語句,但是可以用如下的語句來代替。
開啟網格:
set(gca(),"grid",[1 1]);
關閉網格:
set(gca(),"auto_clear",[-1 -1]);
下面是開啟網格之後的效果:
設定座標軸上刻度的字的大小:
xset("font size", 4);
很悲催,這樣設定對標題的字型大小無效。。。還沒有解決辦法。
設定圖片的背景色:
xset("background", color);
其中 color 為一個整數,表示的是colormap 中的索引。可以用 getcolor() 函數獲得當前的colormap。
getcolor();
將背景色設定為綠色
xset("background", 3);
(未完待續)
scilab是什?
Scilab(Scientific Laboratory)是以法國國立資訊與自動化研究院(INRIA)的科學家為主共同開發的“開放源碼”式科學計算軟體,它主要有兩個功能:數值計算和計算結果可視化。SCILAB資料類型豐富,可以很方便地實現各種矩陣運算。SCILAB也能處理比數字矩陣複雜得多的對象,例如控制專業的多項式傳遞函數矩陣。SCILAB允許使用者線上建立自訂函數。函數在SCILAB中被當作資料對象處理。另外SCILAB具有功能豐富的圖形顯示能力,可以完成各種常規形式的計算結果的可視化功能。
SCILAB 為使用者提供如下計算和開放式編程環境:
1、多種容易操作的資料類型。
2、一個作為廣泛計算基礎的合理有效基本
函數集。
3、一個開放式編程環境,新的函數能很容易
地被添加。
Intersci是一個有用的發布工具,通過它能建立介面,添加新的函數及工具箱,例如增加新的FORTRAN代碼和C代碼到SCILAB中。
SCILAB還包括一些應用於不同科學計算領域的工具箱, 例如應用於數學建模、 訊號處理、網路分析、決策最佳化、線形與非線性控 制等多個方面的工具箱。它的工具箱允許圖形定義和類比複雜的 連續和離散的混雜系統。SCILAB由3個獨立的部分組成:一個解譯器、函數庫(SCILAB程式)以及一個FORTRAN和C程式庫。另外 SCILAB是一種解釋性語言,能運行於Windows 、Linux以及UNIX等作業系統環境下。
SCILAB與目前流行的MATLAB軟體起源相同,都源自於Cleve Moler於1980年開發的程式,其功能與MATLAB 軟體相似,並且運算式的文法、函數的調用和大多數控制指令都相似。
下載Scilab Stable 2.4.1 www.mydown.com/soft/16/16424.html
教程 www.blog.edu.cn/....shtml
matlab中符號繪圖函數繪製 在[-1,1]上的曲線
%(1)求方程分別對x,t,a,b的一階微分;
clc;clear;clf;
f='cos(a*x)*sin(b*x)+t'
dfx=diff(f,'x')
dft=diff(f,'t')
dfa=diff(f,'a')
dfb=diff(f,'b')
%(2)以符號繪圖函數繪製 在[-1,1]上的曲線。【是不是這樣的啊?】
x=-1:0.1:1;
for a=1:2
for b=1:2
for t=1:2:5
ff=cos(a.*x).*sin(b.*x)+t;
plot(x,ff,'o-')
hold on
end
end
end
運行結果:
f =cos(a*x)*sin(b*x)+t
dfx =-sin(a*x)*a*sin(b*x)+cos(a*x)*cos(b*x)*b
dft =1
dfa =-sin(a*x)*x*sin(b*x)
dfb =cos(a*x)*cos(b*x)*x