文章目錄
- 前言
- 一、eval函數(shù)
- 二、代碼示例
- 總結(jié)
前言
很多時候在用matlab進行編程的時候,我們需要給多個變量命名和賦值,如果用手一個一個的去敲,多少會感到無聊且枯燥,而且還顯得不專業(yè)。利用for循環(huán)和eval函數(shù)即可實現(xiàn)多變量的命名和賦值。
一、eval函數(shù)
在matlab幫助文檔中,對eval函數(shù)的描述如下:
使用語法:
eval(expression)
[output1,...outputN]=eval(expression)
其中expression為要實現(xiàn)的代碼。
光看matlab的幫助文檔可能對eval函數(shù)的實際使用的幫助不是很大,實際上,eval函數(shù)可以理解為直接在matlab命令行中運行括號里的matlab語句。以下我將結(jié)合代碼實例來幫助大家理解。
二、代碼實例
代碼如下(示例):
clc;clear;
%% 造初始數(shù)據(jù)
m=10;
n=4;
Sig=zeros(m,n);
for i=1:n
? ? S_tem=linspace(1,10*i,m)';
? ? Sig(:,i)=S_tem;
end
%% 利用for循環(huán)和eval函數(shù)來給多變量命名和賦值
for i=1:n
? ? eval(['S_',num2str(i),'=','Sig(:,i)',';']);
end
代碼運行結(jié)果如下:
?
由此,即可實現(xiàn)多變量的命名和賦值。同時也可以利用eval函數(shù)來運行函數(shù),
代碼如下(接上):
%% 進行傅里葉變換
for i=1:n
? ? eval(['S',num2str(i),'_fft','=','fft','(','S_',num2str(i),')',';']);
end
代碼運行結(jié)果如下:
?利用for循環(huán)和eval函數(shù)也可以實現(xiàn)批量出圖:
代碼如下(接上):?
%% 出圖
figure,
plot(1:m,S_1)
hold on
for i=2:n
eval(['plot','(','1:m',',','S_',num2str(i),')'])
end
代碼運行結(jié)果如下:
?
?
總結(jié)
這里我只是簡單地描述了matlab中eval函數(shù)的使用,利用for循環(huán)和eval函數(shù)的結(jié)合,可以實現(xiàn)批量處理,關(guān)于這一點,還是非常方便的。文章來源:http://www.zghlxwxcb.cn/news/detail-402612.html
因為本人也是初學(xué)者,有些描述的不好的地方,或者各位有什么意見和建議,歡迎大家在評論區(qū)留言,一起學(xué)習(xí)。文章來源地址http://www.zghlxwxcb.cn/news/detail-402612.html
到了這里,關(guān)于matlab eval 函數(shù)的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!