• 技术文章 >常见问题

    数组索引必须为正整数或逻辑值

    (*-*)浩(*-*)浩2019-12-11 09:46:36原创27658

    MATLAB 索引数组时,如果使用不是正整数或逻辑值的索引值时,会发生此报错。

    以下是导致此报错时的一些建议: (推荐学习:web前端视频教程

    1)仔细检查索引值是否为正整数。MATLAB 中的索引不能为 0,一般情况下从1开始。

    2)如果使用逻辑变量索引,请确保索引数组类型为逻辑变量,而不是由1和0组成的double数组。也可以在索引前,将double数组转换为逻辑数组。

    例如:

    A = [1 2 3 4; 5 6 7 8];
    ind_double = [0 1 0 1; 0 1 0 1];
    ind_logical = logical(ind_double);
    A(ind_logical)

    对索引数组,可以通过 whos 函数查看数据类型,例如:

    whos ind_double
    whos ind_logical

    3)如果使用浮点算法来计算索引数组, 则数组值可能不是整数精度。如果知道索引值非常接近整数,则可以用 round 函数,例如:

    A = [1 2 3 4; 5 6 7 8];
    ind_float = 2.00001;
    ind_int = round(ind_float);
    A(ind_float)

    4)当定义了一个与 MATLAB 内建函数重名的变量时,该函数会被覆盖,于是产生同样的报错(调用函数的传参和数组索引都使用相同的括号),例如:

    max = rand(5);  
    A = rand(5);  
    max(A)

    此时,需要另外分配变量名,并清除冲突的变量名:

    B = max;  
    clear max max(A)

    以上就是数组索引必须为正整数或逻辑值的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:数组
    上一篇:什么类型的内存直接集成到CPU芯片中 下一篇:ftp服务器怎么进入
    大前端线上培训班

    相关文章推荐

    • java中栈的数组和链表实现• java数组之一维数组• java中如何实现向一维数组中追加元素• 浅谈JS数组Array的用法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网