EDA365电子论坛网
标题:
Matlab如何判断一个变量是否定义,是否存在
[打印本页]
作者:
jiulquq
时间:
2020-4-29 10:14
标题:
Matlab如何判断一个变量是否定义,是否存在
引用未定义的变量会出错,有没有办法在引用之前判断它是否已经定义呢,(指matlab的自动定义)
, z8 N! p+ C7 U: e7 V7 ~
我试过
! D1 w% P: a( x6 q. G
var==[]
7 g# \4 e) L$ Y6 f+ O8 E9 l
或
) U7 R! I0 q$ h' w( \5 J
isempty(var)
. s3 s) ?, P9 t: P' @
等都不通用。
& s$ @% t% `+ r7 O5 P: ~
6 y0 @' O2 @; R
其实我主要是想用在函数变参数上,感觉用nargin判断参数个数不直观
- Q3 [3 f2 A5 g2 k5 m
想用另一种办法直接判断某个参数是否已定义,若无定义,则给它默认值。
( ~% {1 X$ k! z, n
作者:
yin123
时间:
2020-4-29 13:29
可以试试exist,因为isempty是判断一个变量是否为空,但是前提是这个变量是存在的。
作者:
ExxNEN
时间:
2020-4-29 13:29
用exist可以,如下:
9 R. ^ Z) d3 `4 D. F, U. X
, p# z1 X$ j: n$ v/ y! ?3 y1 Z
function out = fun (in, P)
# A/ F$ i# l$ C1 b* v6 r# p" u6 ]. L
% if isempty(P) % 失败
8 i5 z- v! o# s1 d
% if P == [] % 失败
: J- C% C; C; ?" N. f
if ~exist('P','var') % 用'var'限定下更好,不用也可以
. j4 J; E1 r- K4 w$ t
% if nargin<2 % 通过,但我不喜欢
8 A: c0 X/ s4 Q M. N: u
% 使用参数P的默认值
2 e8 t" K; }% N, _
else
; t6 v6 c! n6 l. B) G7 f( \4 c
% 使用传入的参数P
2 ^6 K+ @3 g1 t1 U
end
& {. \; s( f0 h* M/ o7 ^' Q) B: W* ~; o
% ……
- P' h q9 E3 [9 ~1 }
% matlab6.5 测试通过
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2