2

ベクトル m、x、y があり、以下にコメントするように m1、x1、y1 が必要です。

% given
m = [-4 -3 -2 2 3 4];
x = [2 5 6 7 9 1];
y = [10 23 34 54 27 32];

% required
% m1 = [2 3 4];    % only +ve value from m
% x1 = [13 14 3];  % adding numbers(in x) corres. to -ve & +ve value in m & putting below 2, 3, 4  respectively
% y1 = [88 50 42]; % adding numbers(in y) corres. to -ve & +ve value in m & putting below 2, 3, 4  respectively

m1 = m(m > 0)      % this gives me m1 as required

x1、y1 のヒントは非常に役立ちます。

4

2 に答える 2

0

フリッピーなアクションはどうですか:

m = [-4 -3 -2 2 3 4];
x = [2 5 6 7 9 1];
y = [10 23 34 54 27 32];

idx = find(  (m > 0) );
xdi = find( ~(m > 0) );

m1 = m(idx)
x1 = fliplr( x(xdi) ) + x(idx)
y1 = fliplr( y(xdi) ) + y(idx)

戻る:

m1 =

     2     3     4


x1 =

    13    14     3


y1 =

    88    50    42
于 2013-11-13T11:49:23.510 に答える