我在嵌套for循环中调用我的函数时遇到了一些问题,并且想知道是否有人可以解决这个问题......
new_location = 50x2单元格位置矩阵* 0.1
B = 150x150 rand vals矩阵
for j = 1:numel(new_location(:,1))
for k = 1:numel(new_location(:,2))
if new_location(j + 1) - new_location(j) < 0.3
final_location = check_intensity(B(j),B(j + 1),new_location(j),new_location(j + 1));
else if new_location(k + 1) - new_location(k) < 0.3
final_location = check_intensity_2(B(k),B(k + 1),new_location(k),new_location(k + 1));
else
;
end
end
end
end
用户定义的功能:
function final_location = check_intensity(B(j),B(j + 1),new_location(j),new_location(j + 1))
if B(j) > B(j + 1)
final_location(j) = new_location(j);
else
final_location(j) = new_location(j + 1);
end
我的错误只是说:
错误:文件:check_intensity.m行:1列:44 不平衡或意外的括号或括号。
coord_1_sb出错(第36行) final_location = check_intensity(B(j),B(j + 1),new_location(j),new_location(j + 1));
答案 0 :(得分:2)
这是因为您应该在该位置输入输入参数名称。所以check_intensity(B(j),B(j + 1),new_location(j),new_location(j + 1))
基本上是正确的,当你调用函数&amp;不是在定义函数时。正确的方法是在定义函数时使用简单的变量名,如check_intensity(x,y,new_loc1,new_loc2)
。
那应该可以解决你的问题。
因此,您的用户定义函数将如下所示
function final_location = check_intensity(x,y,new_loc1,new_loc2,j)
if x > y
final_location = new_loc1;
else
final_location = new_loc2;
end