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!