Problem
Matlabでtmp_bool = zeros(1, 1153);
などとしていたのにtmp_boolがdouble扱いになって、
行列のindex指定に使おうとしたら
「添字インデックスは、実数の正の整数か、論理値のいずれかでなければなりません。」
っていうエラーを吐きました。
症例
>> M(:, zeros(1, 1153))% matrix
添字インデックスは、実数の正の整数か、論理値のいずれかでなければなりません。
>> M(:, ones(1, 1153))% matrix
添字インデックスは、実数の正の整数か、論理値のいずれかでなければなりません。
zeros, onesで作った変数だとdata型が意外に
doubleのままで、matlabはそこを自動では
型変換してくれないのでこうなるようです。
Solution
解決策は、castですね。logical
関数で型変換して、終了。
L = logical(A)
via 数値を論理値に変換 - MATLAB logical - MathWorks 日本.
一瞬ビビった。