如何从旧的填充新变量

18次浏览(过去30天)
理查德•里斯
理查德•里斯 2021年6月1日9:30
评论道: Stephen Cobeldick 2021年6月1日15:25
早上好,
我必须创建一个动态变量(我很清楚这篇文章),以防止单元格内容被覆盖在保存和加载周期。我想做的是取核心变量并在它被覆盖之前将其内容转移到新变量。
我遇到了鸡和蛋的问题,我不能单独分离新变量。
eval([“IN_D_mat_G_sqz_”char (SA_type)]);%附加var name和斜率角
WS =谁;
in_index = find(包含(ws,“IN_D_mat_G_sqz”));%在工作空间核心和新的var
现在我卡住了

答案(1)

1月
1月 在2021年6月1日13:18
编辑:1月 2021年6月1日13:22
您知道关于动态创建变量的警告。那你为什么要这么做呢?这个方法就是在你的膝盖上打一针,“现在我卡住了”正是你所期望的。
我有超过40年的编程经验,我也会坚持这种方法。即使我找到了一种方法,它也会大大降低处理速度,增加复杂度,直到代码无法再有效地调试。
名称“IN_D_mat_G_sqz_”听起来像是变量名中隐藏了太多信息。这是动态创建的典型问题之一。
如果你将信息存储在一个结构的字段中,就不会出现这个问题:
(1)数据。值=一17;
(1)数据。条件= {“在”' D '‘G’“sqz”};
(1)数据。类型= char (SA_type);
找到一个“自由变量”是通过以下方法完成的:
元素个数(数据)+ 1
您被动态创建变量所困扰,是时候重构您的代码了。所以这是一个很好的问题。只有解决方案的级别与您期望的不同。

社区寻宝

在MATLAB中心找到宝藏,并发现社区可以如何帮助您!

开始狩猎!

翻译的