次の奇妙な動作に遭遇した単精度変数でsub2indを実行しようとしました。たとえば、私が試してみると:
[a b] = ind2sub([50000 50000], sub2ind([50000 50000], single(1000), single(1000)))
私は得る:
a = 1001
b = 1000
これはバグですか、それとも何かが足りませんか?これはmatlabのコードのどこかでオーバーフローが原因である可能性があることを私は知っていますが、それは起こらないはずですよね?
64ビット(glnxa64)R2012a、R2011a、R2010b、R2010aからも同じ間違った動作が発生しますが、32ビット(glnx86)R2010bからは正しい結果が得られます。