-1

私は次のコードを持っています:

a = cell(4,1);
a{1} = [5 3 0 0];
a{2} = [0 3 5 0];
a{3} = [1 3 0 0];
a{4} = [0 3 2 0];

arrayind = 2;

b = a(cellfun(@(x)x(arrayind) == 1,a));
b{:}

IFステートメントが使用されている場合、どうすればこれを達成できますか:

if r>2
b = a(cellfun(@(x)x(arrayind) == (1 | 2 | 3),a));
end

基本的には、1 を見つけ、なければ 2、なければ 3 を見つけます...

4

1 に答える 1

0

ismemberおそらくあなたが探しているものかもしれません。等値演算子をismember次のように置き換えます。

a = cell(4,1);
a{1} = [5 3 0 0];
a{2} = [0 3 5 0];
a{3} = [1 3 0 0];
a{4} = [0 3 2 0];
arrayind = 1;
b = a(cellfun(@(x) ismember(x(arrayind), [1 5]), a));

譲るだろうb = a([1, 3])

于 2013-03-21T18:47:40.630 に答える