Alternative to EVAL string expressions in optimization
1 次查看(过去 30 天)
显示 更早的评论
Hi,
I have a huge matrix, each element is a string like "16*q^2+4*q", i call it new_sol_array, now i want to define multiple optimconstr object with each row one set of constraints. This is what i did:
constr= optimconstr(M,N);
for i=1:rows
for j =1:column
constr(i,j)=eval(new_sol_array(i,j)+'==0');
end
end
As you would see, this is extremely slow. Is there a better alternative to do the same thing? i have read some of the answers about eval on this website yet did not find anything relevant enough to my problem.
Thank you so much!!!
0 个评论
采纳的回答
Walter Roberson
2022-5-31
Instead of eval() everything, use file operations to emit a file along the lines of
constr = [
EQN, EQN,... EQN
EQN, EQN,... EQN
]
along with a function header. Then "clear" the name of the file. Then invoke the file as a function passing in q and whatever else is required
This reduces the burden by not needing to eval() each one individually.
4 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 String 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!