早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请问在matlab2013版中,怎么实现空集‘[]’在ismember函数中顺利应用例如:A=[1];B=[];[C,D]=Isimember(A,B,'rows');该函数可在matlab2009版中顺利实现,但是在2013版则不行,

题目详情
请问 在matlab2013版中,怎么实现空集‘[]’在ismember函数中顺利应用
例如:A = [1]; B=[] ; [C ,D ] = Isimember(A,B,'rows'); 该函数可在matlab2009版中顺利实现,但是在2013版则不行,
▼优质解答
答案和解析
改变一下编程结构就行了
方法一:先判断B是否为空如果为空,则直接给C和D都赋值为空,
若不为空则使用ismember函数.
方法二:使用try...catch...语句.如果函数运行出错则直接给C和D都赋值为空
clear
clc
A = [1];    
B=[];  
%方法一
if(isempty(B))
    C = [];
    D = [];
else
    [C,D] = ismember(A,B,'rows');
end
%方法二
try
    [C,D] = ismember(A,B,'rows');
catch
    C = [];
    D = [];
end
 不必要求A和B的列相同,不过函数的第三个参数需要改变,如下例:
clear
clc
A = [1,2;5,7];    
B=[2,3,4,5,7];  
%方法一
if(isempty(B))
    C = [];
    D = [];
else
    [C,D] = ismember(A,B,'legacy')
end
结果

C =

     0     1
     1     1


D =

     0     1
     4     5