matlab中eval函式的使用心得

2021-10-05 23:14:45 字數 959 閱讀 1835

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...