matlab - Matlab太多输入参数以及如何设置默认值
问题描述
我的函数中有 8 个输入参数unstable_L(T1,T2,z1,z2,z3,z0h,z0m,U)
。
我想用 5 个必需的输入输出和 3 个可选输入来创建这个函数,如果用户不填写,可选值将是我设置的默认值。我该怎么做?我的编码有什么错误吗?
nargin = 8;
if nargin > 8
disp (" the function unstable_L_new has only maximum of 8 input paramaters")
else
% Fill in unset optional values.
switch nargin
case 5
if isempty(z0h)
z0h = 0.005;
elseif isempty(z0m)
z0m = 0.005;
elseif isempty(U)
U = 2.0;
end
case 6
if isempty(z0m)
z0m = 0.005;
elseif isempty(U)
U = 2.0;
end
case 7
if isempty(U)
U = 2.0;
end
end
end
解决方案
我理解您的问题的方式是您的最后三个参数z0h
,z0m
和U
是可选的。
完成这项工作的方法是检查它们是否exist
function unstable_L(T1,T2,z1,z2,z3,z0h,z0m,U)
if (~exist('z0h', 'var'))
z0h = 1;
end
if (~exist('z0m', 'var'))
z0m = 0.005;
end
if (~exist('U', 'var'))
U = 2.0;
end
% rest of function
推荐阅读
- java - 使用 Spring、MyBatis 和 OracleDB 在 Java 中使用多个应用程序服务器进行数据库事务
- sql-server - SQL Server 2016 导入向导 - 尾随空格
- javascript - 如果文本已经输入,JavaScript 不会复制 innerHTML
- php - mysql中的错误处理没有捕获正确的错误
- node.js - Express - 发送后无法设置标题
- amazon-web-services - Amazon Cognito - 多语言电子邮件
- python - 如果数据框中存在键,则将值读入字典
- azure-pipelines - Azure-Pipelines 下载大量安全文件
- swift - 你能在 Swift 中循环一个 do try catch 块吗?
- sql - PostgreSQL 中 Select 的 Where 部分中的多个嵌入 AND