[已答复] 求助:错误使用eval,必须为字符串标量或字符向量

[复制链接]
每天学电力电子 发表于 7 天前
syms T t r1 VR1 d0 d1 d2 d3 d4
Num_R=1;
iR1_1_t=t;
iR1_2_t=2*t;
iR1_3_t=3*t;
iR1_4_t=4*t;
AllCombinedSwitchModeIndex=[1,2,3;1,2,4;1,3,4;2,3,4];
for i_each_combine=1:4
    A_cetain_combine = AllCombinedSwitchModeIndex(i_each_combine,:);
    for i=1:Num_R
        eval(['iR_int =int(iR',num2str(i),'_(A_cetain_combine)_t,t,('+join("d" + (0:(A_cetain_combine)-1).', "+", 1)+')*T,('+join("d" + (0:(A_cetain_combine)).', "+", 1)+')*T);' ])
        iR_ave = sum(iR_int);
    end
end

我就是想用eval实现对3-6行的关于t的表达式求积分,再把所有的积分求和。但是运行到eval时,出现错误:错误使用eval,必须为字符串标量或字符向量,我调试了一下是int的第一个参数也就是积分函数名称那里的错误,即iR',num2str(i),'_(A_cetain_combine)_t这一部分不对,我是想自动列写iR1_1_t,iR1_2_t,iR1_3_t,iR1_4_t的。不知道阐述清楚了没有,希望大佬告诉一下解决方法,应该怎么写才对呢?


2 条回复


halleyhit 发表于 4 天前
p1.PNG
这是你代码运行的结果,和报错信息一样,eval里并不是一个字符串

每天学电力电子 发表于 4 天前
halleyhit 发表于 2021-10-16 10:40
这是你代码运行的结果,和报错信息一样,eval里并不是一个字符串

请问要怎么改才能实现我想要的功能啊:'(
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表