LoginSignup
1
1

More than 5 years have passed since last update.

[#matlab] 稀に真面目なmatlabのdata型

Last updated at Posted at 2015-12-23

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 日本.

一瞬ビビった。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1