NaN的成员和不使用不同大小的数组matlab的值

时间:2018-06-13 10:53:06

标签: matlab nan

我正在尝试比较2个不同大小的数组并获得匹配对的列。

如果我这样做:

ismembernan = @(a,b) ismember(a,b) | (isnan(a) & any(isnan(b)));
a = [NaN 11 12 13 14 15; NaN 0 1 2 3 4; NaN 5 6 7 8 9];
b = [NaN 0 1 2 3 4; NaN 5 6 7 8 9]];
k = ismembernan(a,b);
col = all(k,2);
column = find(col)

在MATLAB 2016b中,我得到了预期的答案

  

柱=   2   3

但在MATLAB 2014a中(我必须使用此版本)我收到以下错误:

  

使用&错误

     

输入必须具有相同的大小。

     

@(a,b)中的错误是成员(a,b)|(isnan(a)& any(isnan(b)))

也许解决方案是带有if语句的嵌套for循环,但我正在寻找更好的解决方案。

如何让ismember在R2014a中使用nan值?

1 个答案:

答案 0 :(得分:3)

R2016b引入了隐式扩展。在旧版本中,使用class Program { static void Main(string[] args) { string[] lines = System.IO.File.ReadAllLines( @"C:\Users\chri749y\Documents\Skrive til fil\Testprogram.txt"); foreach (string line in lines) { Console.WriteLine("{0}", line); } Console.ReadKey(); } }

bsxfun