找回密码
 注册
关于网站域名变更的通知
查看: 905|回复: 3
打印 上一主题 下一主题

matlab如何判断一个变量是否定义,是否存在(已解决)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-6-24 13:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
引用未定义的变量会出错,有没有办法在引用之前判断它是否已经定义呢,(指matlab的自动定义)$ F( Z( l' r2 e, D
我试过
) q. Y7 h* d7 `1 Ovar==[]
; U2 h' h4 R/ d0 f
1 o+ W9 s. A, D8 N/ l) I9 f: kisempty(var)
) G9 B5 c& s* F. L5 `" S6 A等都不通用。/ O) Z  @7 U: ~2 {7 S% ]7 r* w
. G/ v6 ?+ e, e& R4 |8 N
其实我主要是想用在函数变参数上,感觉用nargin判断参数个数不直观2 U3 ~) |3 g! U3 A4 z2 ^# [
想用另一种办法直接判断某个参数是否已定义,若无定义,则给它默认值。
# z1 p7 s1 L9 i# l/ L6 x3 K1 q

该用户从未签到

2#
发表于 2021-6-24 15:00 | 只看该作者
我都是需要一个变量去上面定义一个

点评

你这个方法可以,不会乱  详情 回复 发表于 2021-6-24 15:01

该用户从未签到

3#
发表于 2021-6-24 15:01 | 只看该作者
NNNei256 发表于 2021-6-24 15:00
0 n9 R" e) M! ]4 o我都是需要一个变量去上面定义一个
! M: X, x4 z- E4 F
你这个方法可以,不会乱
* F6 o/ x' o% U! z# s5 E( p8 T

该用户从未签到

4#
发表于 2021-6-24 15:03 | 只看该作者
可以试试exist,因为isempty是判断一个变量是否为空,但是前提是这个变量是存在的。
$ i/ C4 C) G+ F3 B% l& ]- L! b; x$ H9 [* I" D4 f$ f; x% E
function out = fun (in, P)$ R+ R/ h& E6 ^7 O; r' E5 H% o0 \$ ]
% if isempty(P) % 失败
0 q$ d: f( @4 D* E  o" R$ U# S- X; X3 `% if P == [] % 失败( D3 K& ^. N* R% ]" j9 U# T
if ~exist('P','var') % 用'var'限定下更好,不用也可以4 Z* h+ O0 \! H1 e8 L; l" b
% if nargin<2 % 通过,但我不喜欢# C" o- w+ Z6 C* Y3 i" n
    % 使用参数P的默认值
8 h! G0 ^4 R! ~0 l# z3 v9 Aelse
6 r  Y8 K  e- q    % 使用传入的参数P
, |& |- ?& l" b& _2 `% Nend
8 H9 m. D0 w1 W. e7 [! \3 S) E% ……
% K; M4 n" o( N1 @% matlab6.5 测试通过' N0 a) f, Z3 t- i5 A" b/ Z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 00:29 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表