2014-02-26 86 views
0

我有一個大(工作)結構的m文件。經過大量的努力,我找到了一種方法來用fprint等更新一些結構。我保存了文件,當它保存時,一切看起來都很好,但我希望在函數中進一步使用結構。Matlab從文本到結構

我可以通過 運行(文件名) Actor = ans;運行m文件(存儲結構)

但它不工作的所有時間和好像做的好方法..如果我寫: 演員= IndataActor%的indatafile的名稱是IndataActor .. 它工作正常(演員得到了結構) 但我想用變量「文件名」 演員=文件名

演員剛剛得到的文件名(演員=「IndataActor」)

任何建議的名字嗎?

+0

你是說你用fprint生成m文件嗎?糟糕的做法。 m文件應該是由人類編寫的代碼。如果你想保存數據,然後把它建在內存中,那麼,保存()它。 –

+0

不,我使用fprint在m文件中對結構進行了幾處更改。因此,m文件被保存並且都很好,但是我想現在將該結構賦值給一個變量。 –

+0

我假設你的意思是_MATLAB數據類型struct_。而這樣一個結構,你不會改變fprint。所以我想你必須展示一些代碼,這樣人們才能理解你想要達到的目標。 –

回答

0

嘛結構被保存在一個M文件(函數)...

function [ Actor ] = IndataActorsLund3 

%Actor 1 
Actor{1}.Name='Räddningstjänsten Syd'; 
Actor{1}.ExpertNames={'Saknas?'}; 
Actor{1}.Units={'Saknas?'}; 
Actor{1}.Titles={'Saknas?'}; 
Actor{1}.NbrGoals=5; 
Actor{1}.Goals={'Trygghet för medborgare', 'Bränder och andra olyckor ska minska','Öka kunskapen angående olyckshantering och riskmedvetenheten', 'Påbörja insats inom 10 minture i 90% av prioriterade olyckor', 'Bryta negativ trend vid insats inom 15min'}; 
Actor{1}.NbrActivities=6; 
Actor{1}.Activities={'Tillsyn, remishantering','Informationsinsatser', 'Internutbildning', 'Externutbildning', 'Skadeavhjälpande insats', 'Olycksutredning','','','',''}; 
Actor{1}.MatrixActGoals=[... 
3 4 3 4 3; 
5 3 4 2 2; 
3 3 1 4 5; 
4 3 4 2 2; 
5 1 1 5 5; 
3 3 2 3 3]; 
Actor{1}.NbrInfluencingFlows=1; 
Actor{1}.InfFlowType(1)=19; 
Actor{1}.InfFlowMatrix{1}=[... 
0 0 0 0 0 0 0; 
0 0 0 0 0 0 0; 
0 0 0 0 0 0 0; 
0 0 0 0 0.4 0.6 1; 
0 0 0 0 0.2 0.5 1; 
0 0 0 0 0 0 0]; 
Actor{1}.NbrDependentFlows=4; 
Actor{1}.DepFlowType(1)=1; 
Actor{1}.DepFlowMatrix{1}=[... 
0 0 0 0 0 0 0; 
0 0 0 0 0 0 0; 
0 0 0 0 0 0 0; 
0 0 0 0.1 0.3 0.5 0.7; 
0 0 0 0.6 0.8 0.9 1; 
0 0 0 0 0 0 0]; 
.... (and about 1000 more rows) 
end 

比我創建了一個GUI(含說明書)的結構中添加和更改數據。所以我在文件中讀取並使用幾個不同的fprint命令對文件進行更改。結構也保存在m文件中,並且已經被處理。現在我不知道將結構賦值給變量的最佳方法。

+0

任何人有任何建議? –