0

私は、fints オブジェクトの列を取得し、それらをすべての組み合わせでペアごとに乗算し、結果を新しい fints オブジェクトに出力するプログラムを持っています。私はデータのコードを持っていますが、列 a と b の積がラベル a*b を持つように系列ラベルも実行したいと考えています。

function tsB = MulTS(tsA)
    anames = fieldnames(tsA,1)';
    A = fts2mat(tsA);
    [i,j] = meshgrid(1:size(A,2),1:size(A,2));
    B = Mul(A(:,i(:)),A(:,j(:)));
    q = [anames(:,i(:)); anames(:,j(:))];
    bnames = strcat(q(1,:),'*', q(2,:));
    tsB=fints(tsA.dates, B, bnames);
end

実行すると警告が表示されます。

tsA= fints([1 2 3]', [[1 1 1]' [2 2 2]'],{'a','b'}');
MulTS(tsA)
??? Error using ==> fints.fints at 188
Illegal name(s) detected. Please check the name(s).

Error in ==> MulTS at 10
    tsB=fints(tsA.dates, B, bnames);"

Matlab は bnames の形式が気に入らないようです。「セル配列を文字列matlabに変換する」などのグーグル検索や、b = {bnames}などの試みを試みました。私は何を間違っていますか?

4

1 に答える 1