1

行列に同じ長さではないベクトルを自動的に追加することは可能ですか?

すなわち:

a = [1 2 3 4]
b = [1 2]

Cを次のようにするにはどうすればよいですか。

c = [1 2 3 4 ; 1 2 0 0]

また

c = [1 2 3 4 ; 1 2 NaN NaN]

またはそのようなもの

ありがとう

4

2 に答える 2

3

これは役立つかもしれません

a = [1 2 3 4];
b = [1 2];
c = a;
c(2,1:length(b)) = b;

c =

 1     2     3     4
 1     2     0     0

次に、NaNよりも0必要な場合は、以下のコメントでDennisJaheruddinが提案することを行うことができます。

于 2013-03-20T09:40:14.263 に答える
1

このような関数を作ります

function out = cat2(a, b)

    diff = length(a) - length(b)
    if diff > 0
        b = [b, nan(1, diff)];
    else
        a = [a, nan(1, -diff)];
    end

    out = [a;b];

end

(ただし、列ベクトルを処理するためのチェックも追加します)

cat2([1 2 3 4], [1 2])

ans =

     1     2     3     4
     1     2   NaN   NaN
于 2013-03-20T09:35:50.843 に答える