Matlab裡evalin和assignin的用法

2021-07-17 04:12:58 字數 1169 閱讀 7871

matlab裡evalin和assignin的用法

了凡春秋

assignin與evalin

matlab通常的基本工作空間是'base'空間。matlab在程式執行過程中,將為每個函式分配它自己的函式工作空間(從基本空間中分割出的一塊, 以函式名作為其工作空間名),各個工作空間之間的變數是不能夠直接引用的,在函式退出之後,該函式空間也就立即被登出。因此,對於函式檔案,執行結果除輸出變數返回到基本工作空間或者其父工作空間(呼叫該函式的程式的工作空間)之外,其他中間變數不在基本工作空間或者其父工作空間保留。而對於指令碼m檔案,其工作空間與基本工作空間'base'是

共享的,其運算過程中所用到的中間變數也將在基本工作空間'base'中保留。

assignin為工作空間的變數指派值,其語法為:

assignin(ws,'name',v) ,其中,ws為工作空間名稱,'name'為變數名,v是為該變數指派的值。

evalin實現在工作空間中某個表示式字串,並將結果返回,其語法為:

evalin(ws,'expression'),其中,ws為工作空間名稱,'expression'為表示式符號串。

利用assignin與evalin指令,可以實現不同m檔案主函式與子函式的工作空間變數的共享。

例:function test

clear;  

%清空當前工作空間

a=3;  

% 在基本工作空間建立乙個變數

assignin('base','a',5); % 為該變數指派新的值

b = evalin('base','3*a+2'); %在基本工作空間中計算式子3*a+2的值並將結果賦予b 

end 

a   % 檢視現在該變數的值  

a = 5 

b b = 17

evalin功能很強大,可以執行不同工作區域裡的matlab任何命令:

evalin(ws, expression)

[a1, a2, a3, ...] = evalin(ws, expression)

ws:工作區域(default 是base)

expression: 合法的matlab命令

比如想在執行函式同時,執行工作區域裡乙個賦值命令:

evalin('base', 'a=1');

看一下,是不是你的workspace裡面有了乙個a的變數。

matlab裡點雲的讀入顯示和儲存

pcread和importdata函式完成了這個功能。ptcloud pcread filename 從ply pcd讀取指定路徑的點雲。反回乙個pointcloud物件。像他的名字 匯入資料,並不是特指點雲檔案,可以是陣列等,然後進一步處理成點雲。這個以後再說。pcshow 在座標系中繪製三維點雲...

matlab裡點雲的讀入顯示和儲存

點雲的讀入 pcread和importdata函式完成了這個功能。pcread ptcloud pcread filename 從ply pcd讀取指定路徑的點雲。反回乙個pointcloud物件。importdata 像他的名字 匯入資料,並不是特指點雲檔案,可以是陣列等,然後進一步處理成點雲。這...

matlab函式表示式裡分號 matlab中分號

matlab中各命令的功能 理學 高等教育 教育專區。管理命令和函式 help 第2 章 matlab 資料及其運算 1.矩陣的表示 將矩陣的方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或 逗號分隔,不同行的元素用分號分隔 2.實驗一一 實驗目的 基本訊號在 matlab 中的表...