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 中的表...