2016-11-16 56 views
-5

我现在正在使用Matlab来开发我的优化项目。我需要while循环来迭代。Matlab虽然声明

但我不知道我在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 [.

但我不知道什么是错做?我不会改变这些天的事情,我记得几周前我可以解决类似的问题 谢谢和BEST 维纳斯

+1

好吧,算你的括号内。 – Adriaan

回答

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) 
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