eval()的作用是能將輸入的字串轉換為matlab可執行的語句;可用於變數的批量命名和賦值;
例:完成100個變數的命名及賦值,
例如完成m1=1;m2=2;m3=3;……………m98=98;m99=99;m100=100;
直接賦值需要100行**;
利用eval()函式可大大方便整個賦值過程,只需3行**即可完成;
具體**如下:
for i=1:100
eval([『m』,num2str(i),』=i;』]); %將字串"mi=i;"轉變成可實行**並執行,以i=1為例,執行**m1=1;
end根據eval的作用原理,除了簡單的數值賦值,也可批量呼叫自定義函式進行賦值。其中自定義函式的引數也可以是批量化的;
例如給定陣列a=[1,2,3,4,5,6];b=[2,3,4,5,6,7];計算a+b並把對應元素賦值給m1;m2;m3;m4;m5;m6;
具體**如下:
a=[1,2,3,4,5,6];b=[2,3,4,5,6,7];
for i=1:6
eval([『m』,num2str(i),』=summ(a(』,num2str(i),』),b(』,num2str(i),』));』]);
%執行mi=summ(a(i),b(i));
endfunction j=summ(a,b) %自定義求和函式
j=a+b;
end工作區的輸出為m1=3;m2=5;m3=7;m4=9;m5=11;m6=13;
在matlab的使用中,進行字串的賦值,例如完成m=[『這是一串字元』];
依靠eval()函式完成相同操作,若輸入**:
eval([『m=[『這是一串字元』];』]); 系統會報錯,這是由於第乙個單引號和第二個單引號配成一對,這導致eval()函式的輸入有誤。
正確的**為:
eval([『m=[』『這是一串字元』』];』]); %使用轉義字元,在字串中輸入』
自學MATLAB(七) eval函式
昨天學到了eval函式這一塊,一開始沒有理解,查了好多資料之後,將自己對evla函式的理解簡單寫一下,請大家指正。eval s 中的s為乙個字串,eval函式即是將字串s當做可執行語句。總體來說可執行4種字串。1 表示式 字串 a 1 5 string a 2 a 2 a.2 eval string...
javascript中的eval函式
eval 只有乙個引數,如果傳入的引數不是字串,則直接返回這個引數。否則會將字串當成js 進行編譯,如果編譯失敗則丟擲語法錯誤 syntaxerror 異常。如果編譯成功則開始執行這段 並返回字串中的最後乙個表示式或語句的值 如果最後乙個表示式或語句沒有值,則最終返回undefined。如果字串丟擲...
js中的eval函式
eval函式是一種接受字串作為引數,並且可以將接受的字串轉換成js表示式並且立即執行該表示式。eval var a 1 賦值a 1 eval 2 3 5複雜表示式 let render let a 0,b render.table.width 如何通過a b進行修改render的width eval...