我正在尝试比较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
值?
答案 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