You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB的for循环中为类定义多个对象?

解决方法

你的代码存在两个核心问题:

  1. 只是修改了cell数组list的元素,并没有创建名为A、B、C、D的独立工作区变量
  2. class是Matlab内置函数,直接赋值会触发错误,你需要替换为实际要实例化的类名

下面提供两种可行的实现方式:

方式1:使用eval(直观简洁)

var_names = {'A', 'B', 'C', 'D'};
target_class = 'YourClass'; % 替换成你要实例化的类名
for idx = 1:length(var_names)
    eval([var_names{idx} ' = ' target_class '();']);
end

这段代码通过拼接字符串并执行的方式,直接在工作区创建对应名称的变量,并完成类的实例化。

方式2:使用assignin(更安全规范)

var_names = {'A', 'B', 'C', 'D'};
target_class = 'YourClass'; % 替换成你要实例化的类名
for idx = 1:length(var_names)
    new_obj = feval(target_class); % 实例化对象
    assignin('base', var_names{idx}, new_obj); % 将对象绑定到工作区变量
end

用feval实例化类对象,再通过assignin将对象注入到工作区指定变量中,避免了直接执行字符串的潜在风险。

内容的提问来源于stack exchange,提问作者minecraftgp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 23:55:19