matlab - 从 MATLAB 的嵌套 for 循环中调用函数
问题描述
我在嵌套的 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));
解决方案
那是因为您应该在该位置输入输入参数名称。所以check_intensity(B(j),B(j + 1),new_location(j),new_location(j + 1))
当你调用函数而不是定义函数时基本上是正确的。正确的方法是在定义函数时使用简单的变量名,例如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
推荐阅读
- django - 带有变量的 Django 模板循环
- jquery - 如何为以下内容编写jquery
- .htaccess - htaccess 将文件请求从特定文件夹重定向到另一个主机名
- docker - 在 kapacitor 中运行 udf 时出现意外的 EOF 错误
- reactjs - 如何在 reactjs 中模拟一个承诺?
- amazon-web-services - 无法从 ASP.NET Hangfire 连接到 AWS RDS 数据库
- javascript - 谷歌电子表格 - 根据另一个单元格的内容将日期添加到单元格
- java - Spring 与石英和 jpa 事务
- azure-data-lake - Azure 数据湖 - 数据安全性和合规性
- google-analytics - BigQuery 中的谷歌分析实时数据