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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
引用未定义的变量会出错,有没有办法在引用之前判断它是否已经定义呢,(指matlab的自动定义)
3 a* L3 ]4 s9 S4 @- ^我试过- Z3 z! t; Y* j, [! `7 Q" I0 c
var==[]7 z3 s: y2 S' X( \2 u% e" G, U
4 L) P! i* R, ?0 @  [5 @/ x! m
isempty(var)( k$ }* [& o7 Y* u7 S
等都不通用。
0 V6 J% i1 C8 M1 M& o" b; b8 m2 |- [/ d' |6 ^1 b( ~; O
其实我主要是想用在函数变参数上,感觉用nargin判断参数个数不直观8 o' M+ b  w! D. I# J- m$ ?* P
想用另一种办法直接判断某个参数是否已定义,若无定义,则给它默认值。7 u3 o6 v6 l  ?: X

该用户从未签到

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

点评

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

该用户从未签到

3#
发表于 2021-6-24 15:01 | 只看该作者
NNNei256 发表于 2021-6-24 15:009 k$ r# q5 H) J8 l& n5 D
我都是需要一个变量去上面定义一个

7 u, I3 d! o. a% c! L( t你这个方法可以,不会乱
6 L0 X- @3 m1 t8 U8 _

该用户从未签到

4#
发表于 2021-6-24 15:03 | 只看该作者
可以试试exist,因为isempty是判断一个变量是否为空,但是前提是这个变量是存在的。
9 H6 m9 t: S+ y# D& K0 I8 E& Q0 j6 o$ \9 {* q" d0 o* Z
function out = fun (in, P)
/ v: g7 E- u" T! W# f6 `% if isempty(P) % 失败' A0 b/ [* p) w1 j
% if P == [] % 失败
! k, N, @3 y# b$ I9 Q8 W$ uif ~exist('P','var') % 用'var'限定下更好,不用也可以) P1 Y0 j9 [( ^0 e# o
% if nargin<2 % 通过,但我不喜欢; N2 R% m6 g" f: a
    % 使用参数P的默认值; ~% I; i7 w4 V# S% R- P: v/ H' m! ~& P
else
+ k& d$ `1 q! E4 ?0 B    % 使用传入的参数P% O% B; w, o/ M/ s. w6 j
end
7 e& {) N: w& F4 o! i/ D' M% ……9 i2 ^$ E- n' c3 Q/ f1 m
% matlab6.5 测试通过
8 R& Y1 y! l. V9 N& }1 d! h
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-5 12:15 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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