1
データ行列には、長さの異なる複数の列(2つのベクトル)があります。最小の長さのゼロを埋めたい。 0の数はパディング後のセル配列の長さをゼロにする方法
[max(length(Vector 1))-min(length(Vector 2))]
とする必要があります。最小の長さのセルにゼロを追加します。列が問題なしと同じ長さであれば、各列の長さを等しくしたい。
データ行列には、長さの異なる複数の列(2つのベクトル)があります。最小の長さのゼロを埋めたい。 0の数はパディング後のセル配列の長さをゼロにする方法
[max(length(Vector 1))-min(length(Vector 2))]
とする必要があります。最小の長さのセルにゼロを追加します。列が問題なしと同じ長さであれば、各列の長さを等しくしたい。
n = max(max(cellfun(@(x)size(x,2),data)))
cellfun(@(x)[x, zeros(1,n-numel(x))], data, 'uni', 0)
上記細胞は、パッドに単一の最大値を求めました。私はあなたが実際にこの最大は、列ごとに計算したいことを今実現:
n = max(cellfun(@(x)size(x,2),data))
cellfun(@(x,n)[x, zeros(1,n-numel(x))], data, repmat(num2cell(n),2,1), 'uni', 0)
この時点で、ちょうど `関数cellfun(@(x)は[
for col = 1:size(data,2)
n = max(size(data{1,col},2),size(data{2,col},2));
for row = 1:2
x = data{row,col};
data{row,col} = [x, zeros(1,n-numel(x))];
end
end
にループを使用することがより直感的かもしれません –
その中のxは何ですか? –
xは、入力変数 'data'の各セルです。xは、0、1、n-numel(x))、data、 'UniformOutput' 'cellfun'をループとみなしてください。最初の反復は 'data {1} = [data {1}、0、n-numel(data {1}))]'です。私のコメントに書いたように '、 'UniformOutput'、false'を含める必要があることに注意してください。それなしでは動作しません。 –