2017-08-15 750 views
11

在matlab中是否存在一種未公開的方式來呈現變量'不可見',使其仍然存在但不顯示在工作區列表中?如何在matlab中隱藏工作區中的變量

+2

請問:爲什麼? –

+0

如果它是不可見的,那麼如何回覆它? – Ratbert

+1

您可以通過實際調用工作空間視圖中的「未顯示」變量來調用它。它的用途是更好地瞭解matlab的未公開的Java部分(沒有深刻的'爲什麼'),它是matlab的一部分,對於瞭解 – user2305193

回答

3

你可以做的一件事就是擁有全局變量。這些特性的一個有趣特性是,即使您清除了工作空間,它們仍然存在於內存中,除非專門清除全局變量。下面是一個例子。

global hidden_var 
hidden_var = 1; 
clear 
global hidden_var 
hidden_var 

我還不能完全肯定,爲什麼你甚至會想的功能,但是這是一種方式,從工作區,你可以「隱藏」的變量。

+1

一些注意事項:1)'clear'會在發出'who'這個語句時不會出現這個變量,但它仍然會顯示在全球工作空間中'who global'; 2)'clear'後,只有使用'global hidden_​​var'重新聲明之後,才能訪問存儲的值,此時它將再次在工作區中完全可見; 3)即使是全局工作空間,「全部清除」也會清除存儲的值。 – gnovice

13

我能想到的唯一方法就是實際使用一個函數,就像MATLAB定義的pi,ij一樣。例如:

function value = e 
    value = 2.718; 
end 

不會有變量命名elisted in your workspace,但好像還可以使用它:

a = e.^2; 

技術上講,它只是「隱形」在這個意義上,像who功能而whos不會將其列爲變量,但函數仍然必須存在於您的MATLAB path中,並且仍可以由任何其他腳本或函數調用。

+0

有點晦澀難懂。可以將它重寫爲匿名函數還是它實際上是否必須保存爲腳本? – user2305193

+1

一個匿名函數會在工作區中顯示爲一個變量,所以它必須保存在路徑上的.m文件中。 – gnovice

0

我會建議將結構中的變量作爲解決方法進行分組。運行下面的代碼只會在工作區中顯示爲mainVariable。缺點是你必須輸入整個東西才能訪問變量,但你可以縮短名稱。

 

    mainVariable.actualVariable1 = 1 
    mainVariable.actualVariable2 = [2, 4] 
    mainVariable.actualVariable3 = 'Hello World'