⑴ Matlab中eval函數的使用方法。
eval()函數的用法就是將括弧內的字元串視為語句並運行,具體如下:
1、假如我要對a1,a2,a3,a4,……,a100分別賦予1,2,3,……,100,這時eval就發揮作用了。
for i=1:100
eval(['a' num2str(i) '=' num2str(i)]);
end
2、再比如批量存數據或圖片文件等等。
那麼開始提到的例子也就好解釋了。
注意:eval中的中括弧在兩個以上字元串出現時一定要有,起連接作用。
如:
input:[『hello』 『world』]
output:helloworld
eval命令在Linux下的應用非常廣泛
1、eval會把賦值語句中雙引號之間的內容直接賦給『=』前的變數,而不是當作字元串賦給變數
例如:
version="(2 4)" 是將字元串賦值給 version;
eval version="(2 4)" 執行時變成了 version=(2 4), 是把數組 (2 4) 賦值給 version
2、當在一個賦值語句的前面加上 eval 時,它就會將 後面表達式中以 $ 開頭的所有變數進行整體替換
例如:
var1="1234 4556"
tmp=var
eval test="$"$tmp"1"
echo $test
那麼就會在屏幕上顯示出 :
1234 4556
⑵ matlab中如何嵌套函數
MATLAB中M文件有兩種類型,腳本M文件和函數M文件。腳本M文件是將可執行程序語句放入M文件中,就像在命令窗口那樣,按其語句順序及邏輯關系執行,可以理解為一般的順序執行程序語句。函數文件一般是聲明一個函數,方便以後操作中的調用。下面就函數文件中函數嵌套的使用做簡單分析。
對於函數文件,一個M文件只能定義一個總函數,即第一句function所定義的函數,而且整個M文件在外部使用時候表現出來的也只有這一個函數。如果需要多個函數嵌套,與其定義順序無關。下面結合一個簡單的例子來分析。
function y=average(x) %聲明一個函數,y=average(x),這個函數是取x的平均值,返回值是y
y=mymean(x); %再次使用函數mymean,此處該函數並沒有定義演算法,而是在後面對其進行描述
function a=mymean(v) %定義函數mymean,對於上級函數來說,此處為定義子函數,進行函數嵌套
%a=mean(v); %此處為了簡便,使用內部求均值函數mean,當然也可以自己寫,如下句。
a=sum(v)/length(v); %對v求和並除以總長度可得其平均
我們設一個向量z=[1,2,3,4,5,6,7],然後求其平均,在命令窗口輸入average(z)即可。相當於將z分別賦給x和v,由子函數得出返回值a,a和y是等價的,外層可輸出返回值。若去掉y=mymean(x)這句,則總函數外部無返回值輸出。