Matlab中,如果我要引用的变量名里面含有变量,该如何引用?
批量生成是这样的fori=1:Tsyms(['L',num2str(i)]);end但是直接用L1就用不了啦,系统不认识。我前面的话可能有误导性。L1是没有初始值的。前面...
批量生成是这样的
for i=1:T
syms (['L',num2str(i)]);
end
但是直接用L1就用不了啦,系统不认识。
我前面的话可能有误导性。L1是没有初始值的。前面已经生成了从L1到LT的一系列变量。虽然我为了生成函数的方便,给T的初始赋值为100,但它其实是一个参数。(我不知道怎样才能生成一个T维的向量,T是一个参数而不是确定数值?)
T在求解最优化的过程中不变(是给定的),L1到LT是变的。我做的程序是最优化,最小化函数F(x)=K*(L1^T)*(L2^(T-1))*...*LT+M*((1-L1)^T)*((1-L2)^(T-1))*...*(1-LT)
这里面K,M,T都是参数,L1到LT是我要求解的自变量。 展开
for i=1:T
syms (['L',num2str(i)]);
end
但是直接用L1就用不了啦,系统不认识。
我前面的话可能有误导性。L1是没有初始值的。前面已经生成了从L1到LT的一系列变量。虽然我为了生成函数的方便,给T的初始赋值为100,但它其实是一个参数。(我不知道怎样才能生成一个T维的向量,T是一个参数而不是确定数值?)
T在求解最优化的过程中不变(是给定的),L1到LT是变的。我做的程序是最优化,最小化函数F(x)=K*(L1^T)*(L2^(T-1))*...*LT+M*((1-L1)^T)*((1-L2)^(T-1))*...*(1-LT)
这里面K,M,T都是参数,L1到LT是我要求解的自变量。 展开
2011-07-27
展开全部
用sprintf函数,比如
a = 2
title(sprintf("Diagramm for a = %d", a))
另外,站长团上有产品团购,便宜有保证
a = 2
title(sprintf("Diagramm for a = %d", a))
另外,站长团上有产品团购,便宜有保证
追问
能否详细说明
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实我不是很明白楼主为什么要把问题复杂化。楼主完全可以把需要的变量存入一个100维的向量L中,for循环中的语句就变为 L(i)=L(i)+i;
更多追问追答
追问
不好意思,我前面的话可能有误导性。虽然我给T的初始赋值为100,但它其实是一个参数,应该是没有数值的。或者请你教我一下,怎样才能生成一个T维的向量,T是一个参数而不是确定数值?
我做的程序是最优化,最小化函数F(x)=K*(L1^T)*(L2^(T-1))*...*LT+M*((1-L1)^T)*((1-L2)^(T-1))*...*(1-LT)
这里面K,M,T都是参数,L1到LT是我要求解的自变量。
追答
向量可以不用先生成。MATLAB不用先声明数组大小,可以每一步都新开辟内存空间。比如
for i=1:100
L(i)=XXX;
end
L不用事先声明。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
matlab里的维度本来就不一定是固定的, 你写写试试就知道了
追问
我对F(x)求最优化的时候,没办法将F(x)=K*(L1^T)*(L2^(T-1))*...*LT+M*((1-L1)^T)*((1-L2)^(T-1))*...*(1-LT)这样带省略号的表达式输进去。所以我想用For循环将(L1^T)*(L2^(T-1))*...*LT之类的东西定义出来。翻了一整本matlab最优化书,没找到如何将维度不固定的函数塞到最优化里面去的办法,里面的函数都是给定维度的。可能我书不好。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询