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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
引用未定义的变量会出错,有没有办法在引用之前判断它是否已经定义呢,(指matlab的自动定义)- k' x2 |/ m' L* }# {. n+ E
我试过  f# [+ [# D; q1 G6 z
var==[]7 A1 o" h$ v% J# m/ J' t

9 S7 G1 v2 ~1 e6 j6 _( R5 v5 ?  _isempty(var)6 a  n0 n( f% s# D
等都不通用。$ ^6 ?8 V: Q% w

7 _' x9 b  K; l其实我主要是想用在函数变参数上,感觉用nargin判断参数个数不直观
8 V" N: A( j8 a9 x1 `0 z想用另一种办法直接判断某个参数是否已定义,若无定义,则给它默认值。
; D( X0 D8 W& ?( L3 T

该用户从未签到

4#
发表于 2021-6-24 15:03 | 只看该作者
可以试试exist,因为isempty是判断一个变量是否为空,但是前提是这个变量是存在的。
: p- j7 ]9 v0 [+ e+ |1 `% m" J6 N: x0 o! C; R
function out = fun (in, P)2 p4 w) B+ j! d1 A
% if isempty(P) % 失败0 N* ~; `0 V! ?( H8 F, T
% if P == [] % 失败( [' j' S7 K1 s/ Q+ W& F
if ~exist('P','var') % 用'var'限定下更好,不用也可以
% P4 M. O, j' f7 y, u+ D% if nargin<2 % 通过,但我不喜欢
* n- _! A6 k# Z9 H. V    % 使用参数P的默认值
7 j. d  z2 T( Z& w+ j8 E9 n- welse- h' A' _  h: e6 P& s# b  x
    % 使用传入的参数P+ A; D1 [  W6 d' z
end, `" e2 Y& d7 G* b; d
% ……
" M( e7 n5 d$ m4 q% matlab6.5 测试通过( a$ D# h, B% Y% m( P0 c- W

该用户从未签到

3#
发表于 2021-6-24 15:01 | 只看该作者
NNNei256 发表于 2021-6-24 15:00. ]& Q% m# p8 k' V' |
我都是需要一个变量去上面定义一个
- Z, ?! q  Y! o2 M# d3 o. q$ ]
你这个方法可以,不会乱& S  z  U1 Z+ J8 m- F

该用户从未签到

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

点评

你这个方法可以,不会乱  详情 回复 发表于 2021-6-24 15:01
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 23:28 , Processed in 0.156250 second(s), 25 queries , Gzip On.

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

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

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