したがって、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