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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
引用未定义的变量会出错,有没有办法在引用之前判断它是否已经定义呢,(指matlab的自动定义)5 {  e$ _, S* }1 P
我试过
- q6 k" W5 k9 o& {3 Y7 Q5 }- hvar==[]6 J# x5 T: R. S: U3 f) o
: O  Z2 K! F4 R' v
isempty(var)+ ~* l$ B0 [9 {+ q0 ?' R
等都不通用。* c. G* O. ?% i, b7 P
8 t8 K' C$ ~+ ?/ U5 G' g
其实我主要是想用在函数变参数上,感觉用nargin判断参数个数不直观8 q, d7 |. `0 b6 A( a; g
想用另一种办法直接判断某个参数是否已定义,若无定义,则给它默认值。2 y9 M5 N3 D0 n3 R) F! p

该用户从未签到

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

点评

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

该用户从未签到

3#
发表于 2021-6-24 15:01 | 只看该作者
NNNei256 发表于 2021-6-24 15:00
+ A2 g+ z! `3 j- n+ m0 o, X我都是需要一个变量去上面定义一个
" [  F2 N7 }- Z5 Z2 k1 a( i
你这个方法可以,不会乱
& Y8 u$ h" A$ j  Z9 l

该用户从未签到

4#
发表于 2021-6-24 15:03 | 只看该作者
可以试试exist,因为isempty是判断一个变量是否为空,但是前提是这个变量是存在的。( c$ R* Y/ S- @: o4 u
$ V5 w, R+ @7 @8 R; N: }
function out = fun (in, P)
7 {5 c6 |' J2 _. p& F7 R( y2 M% if isempty(P) % 失败9 g2 i! |: `" ~( s- ^! {. j- q
% if P == [] % 失败8 H9 ?6 p" y. G: P
if ~exist('P','var') % 用'var'限定下更好,不用也可以
8 v7 o  m( E# |% if nargin<2 % 通过,但我不喜欢  R" l- h! b- i1 O) @
    % 使用参数P的默认值( |  G, O: }$ g5 Q; W6 I, d) |6 |
else- D- A3 t8 p$ n1 \( T
    % 使用传入的参数P5 Q. l! C$ M* u7 m
end. L. j  Z# k: F/ P
% ……$ b+ L% |' U1 i8 L
% matlab6.5 测试通过
5 u; D& I2 k4 j% u
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-7 02:25 , Processed in 0.109375 second(s), 27 queries , Gzip On.

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

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

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