我现在正在使用Matlab开发我的优化项目。我需要使用while循环来迭代。
但我不知道我在while循环中的语句有什么问题。上次找到另一个类似的问题。 我的代码是这样的:
while(norm(g_k)/(max(1,norm(v_k)) > eps && iter < iterMax)
rho = 0.00001;
v_k1 = v_k - rho*g_k
总是说:
Expression or statement is incorrect--possibly unbalanced (, {, or [.
但我不知道出了什么问题?这几天我没有改变什么,我记得几周前我可以解决类似的问题 谢谢,最好的 金星
答案 0 :(得分:0)
如错误所示,您的括号不是成对的。 变化
while(norm(g_k)/(max(1,norm(v_k)) > eps && iter < iterMax)
到
while(norm(g_k)/max(1,norm(v_k)) > eps && iter < iterMax)
答案 1 :(得分:0)
您没有正确关闭括号。你最终有一个太多或者在开头没有一个
while (norm(g_k)/(max(1,norm(v_k)) > eps && iter < iterMax
rho = 0.00001;
v_k1 = v_k - rho*g_k
或
while ( (norm(g_k)/(max(1,norm(v_k)) > eps && iter < iterMax )
rho = 0.00001;
v_k1 = v_k - rho*g_k