0

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

我可以通过 run(FileName) Actor=ans; 运行 m 文件(存储结构)。

但它并不总是有效,而且似乎是一种不好的做法。如果我写:Actor=IndataActor %indatafile 的名称是 IndataActor .. 它工作正常(Actor 得到了结构)但我想使用变量“FileName”Actor=FileName

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

有什么建议么?

4

1 回答 1

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 命令对文件进行更改。并且 struct 也保存在已经处理好的 m 文件中。现在我不知道将结构分配给变量的最佳方法。

于 2014-02-27T16:06:41.167 回答