2

したがって、C# にはこのオブジェクトがあり、int と bool (double と logical) が含まれます。

object[,] matrixData = new object[iDimensions[0], iDimensions[1]];

そして、それをmatlabに渡します:

matlab.PutWorkspaceData("matrixData", "base", matrixData);

Matlab はこれを配列のセル配列と見なします。これらの値を何にも使用できないため、これは不便です。これらを数値配列に変換する必要があると思いますが、実際には、強い型付けを保持し、各セル内の配列を失うだけでよかったのです。

たとえば、次のようになります。

temp = cell(1,4)

temp{1,1} = [0.5]
temp{1,2} = [1==1]
temp{1,3} = [7424.356]
temp{1,4} = [31]

そして私はしたい:

output = [0.5, 1==1, 7424.356, 31]

したがって、私の現在の実装はかなり粗雑です:

cellfun(@decellify,CashFlowBasisMatrixData);

どこ

function decellified = decellify(object)

if  isa(object,'logical')
    decellified = +object;
end

if  isa(object,'float')
    decellified = object;
end    

if  isa(object,'char')
    decellified = -2;
end

end

より良い方法はありますか?C# で double に変換する場合、各要素を「配列解除」するにはどうすればよいですか?

ありがとう、Nt

4

0 に答える 0