2014-04-21 75 views
0

有時候我不想將我的數據顯示給其他人,因此我需要修改它。當它準備好導出時,我希望導出工作區數據,例如表格,完全按照原樣導出,以便在此處舉例。將當前工作空間變量轉換爲代碼

我知道生成腳本函數,我覺得答案有點相關,但事實並非如此,發佈也不是我需要的命令。我怎麼做?

更新例如:

如何打印表的代碼?

%% Table example to export workspace 

T={'A2P3';'A2P3';'A2P3';'A2P3 with (extra1)';'A2P3 with (extra1) and (extra 2)';'A2P3 with (extra1)';'B2P3';'B2P3';'B2P3';'B2P3 with (extra 1)';'A2P3'}; 
a={1 1 0 1 1 0 1 1 0 1 1 } 

T(:,2)=num2cell(1); 
T(3,2)=num2cell(0); 
T(6,2)=num2cell(0); 
T(9,2)=num2cell(0); 

T=table(T(:,1),T(:,2)); 

class(T.Var1); 
class(T.Var2); 

T.Var1=categorical(T.Var1) 
T.Var2=cell2mat(T.Var2) 

class(T.Var1); 
class(T.Var2); 

回答

3

由於Matlab的2014A有新feauture:

MATLAB現在提供了工作區變量保存到 MATLAB腳本的能力。保存腳本後,您可以通過運行腳本來重新生成工作空間變量 。單擊 MATLAB桌面上的保存工作區,然後在保存類型 菜單中選擇MATLAB腳本(* .m)。或者,使用matlab.io.saveVariablesToScript從命令行執行這個 操作。

Documentation fo matlab.io.saveVariablesToScript

如果沒有新的版本,你需要編寫自己的I/O例程的變量。對數值數組做這種通用操作是很容易的,但這取決於特定的情況。

+0

感謝您的快速回復,它是一個表,包含數字和字符串數據。我有2013b。 – Easyquestionsonly

+0

@Easyquestionsonly請發表一個例子,以及如何讓代碼看起來像最終。但對於混合內容的表,這是一項複雜的任務。如果張貼在這裏是唯一的目的,我不確定它是否值得痛苦。在一個新問題中可能會更好。 – thewaywewalk

+1

謝謝你指出這一點,我更新了我的問題,發現我可以upvote人在同一時間:) – Easyquestionsonly

1

如果Matlab的2014A是不可用的,我會用gencodehere

+0

確實gencode支持表嗎?它似乎是一個相當恐怖的3 tl; dr文件的代碼段。在我可以使用它之前,我需要學習多少? – Easyquestionsonly

+0

@Easyquestionsonly:我不這麼認爲,matlab 2013b引入的表格,但代碼自2009年以來沒有維護。您不需要研究代碼,閱讀'gencode'的文檔就足夠了。 – Daniel