Matlab从文本到结构

时间:2014-02-26 18:06:54

标签: matlab matlab-struct

我有一个具有大(工作)结构的m文件。经过大量的努力,我找到了一种用fprint等更新一些结构的方法。我保存了文件,保存后一切看起来都不错,但我想在函数中使用结构。

我可以运行m文件(存储结构) 运行(文件名) 演员= ANS;

但它一直不起作用,似乎是一种不好的方式。如果我写: Actor = IndataActor%indata文件的名称是IndataActor .. 它工作正常(Actor得到结构) 但我想使用变量“FileName” 演员=文件名

Actor刚刚获得了FileName的名称(Actor ='IndataActor')

有什么建议吗?

1 个答案:

答案 0 :(得分: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(带GUIDE)来添加和更改结构中的数据。所以我在文件中读取并使用几个不同的fprint命令对文件进行更改。并且结构也被保存在m文件中,这已经被处理掉了。现在我不知道将结构赋给变量的最佳方法。