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

Matlab如何判断一个变量是否定义,是否存在

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-29 10:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
引用未定义的变量会出错,有没有办法在引用之前判断它是否已经定义呢,(指matlab的自动定义)
9 p& S" W4 p$ ?" \+ _我试过
6 ^& [  z0 N' W2 p. a. qvar==[]
7 Z  u( G- w, j5 Y: W5 W3 |$ {0 e) s' \
& z) N5 r3 Z' e. Misempty(var)* n. d( }9 h* q" K# E/ n4 x& P2 |# @
等都不通用。
8 ]: K5 v2 M4 T" n' j* `
# H( m6 V; s: r& P; d其实我主要是想用在函数变参数上,感觉用nargin判断参数个数不直观
* c9 I$ [3 H5 `5 f6 E3 Z9 V: ~想用另一种办法直接判断某个参数是否已定义,若无定义,则给它默认值。: ?" X. Z+ z4 E
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-29 13:29 | 只看该作者
    可以试试exist,因为isempty是判断一个变量是否为空,但是前提是这个变量是存在的。

    该用户从未签到

    3#
    发表于 2020-4-29 13:29 | 只看该作者
    用exist可以,如下:/ G. R2 J2 B" i/ \! _3 O# M" c

    * N  d8 S, h3 p3 gfunction out = fun (in, P)0 j0 i% ]9 V# W) c8 x1 A
    % if isempty(P) % 失败# b. m9 U9 b2 m
    % if P == [] % 失败
    . R$ z) E3 Y7 `if ~exist('P','var') % 用'var'限定下更好,不用也可以
      [9 U4 C' c6 S% a; j% if nargin<2 % 通过,但我不喜欢" Y  I8 o! B3 t- `) C- K) X
        % 使用参数P的默认值
    . D3 W! B0 d4 K, U/ N' Welse  X# d1 P9 N* Z
        % 使用传入的参数P
    - F* N/ F& V  `( D" q8 gend
    # Z& R' t, Q) ]; O+ \' Q% ……+ ?2 s; ^; w4 G+ |
    % matlab6.5 测试通过
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-22 22:37 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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