1

私はこのマトリックスを持っています:

A = [1 3
    5 7
    9 10];

そして、このベクトル:

B = zeros(1,10);

[1:3]ここで、の範囲内の要素[5:7]1[9:10]に変更したいと思います。したがって、これを取得するには:

C = [1 1 1 0 1 1 1 0 1 1];

私は試した:

B(A(:,1):A(:,2)) = 1;

ただし、最初の範囲のゼロを変更するだけです。

forループなしで実行できますか?

ありがとう。

4

3 に答える 3

2

Would something like this be appropriate?

>> f = @(x)(any(A(:,1)<=x & x<=A(:,2)));
>> i = 1:length(B)

i =

     1     2     3     4     5     6     7     8     9    10

>> arrayfun(f,i)

ans =

     1     1     1     0     1     1     1     0     1     1
于 2013-07-18T00:22:45.240 に答える
0

こんにちは、これを試すことができます:

B([A(1,1):A(1,2) A(2,1):A(2,2) A(3,1):A(3,2)]) = 1;
于 2013-07-17T22:57:14.443 に答える