zoukankan      html  css  js  c++  java
  • matlab中关于使用length导致的不稳定状况。

    前几天在做一个matlab的程序过程中,程序总是遇到提示所需坐标已经超出范围的提示。很奇怪的问题。

    我检查了程序,首先确认这不是一个程序上简单的语法问题导致的。在调一些较大的程序过程中其实麻烦的过程,通过数次单步调试,

    最终将程序停在了,报错的前一行,这个过程还是一个花了我快一个小时,囧啊囧啊囧啊。

    检查for循环过程中的变量变化,发现原本只有一组返回的数据,在for循环的次数却是2次!!

    这是怎么回事,程序确实只返回了一组数据,为什么要返回两次循环,由于数据不存在,必然导致数据超出范围。

    google了一下,大家的说法也都千奇百怪,不是很合适我的这个情况。

    郁闷了。

    主要到刚好我的for循环是这样写得:

    for i = 1 : length(zuobiao)

      XXXXXXXXXXXXX

         XXXXXXXXXXXXXX

    end

    注意到了,中间没有问题,那问题肯定就出在length()这里。于是看看matlab help中对length的描述。

    length

    Description :Length of vector or largest array dimension

    看到这里就明白了,length返回的是最大的维数。这就是问题。

    若矩阵为2*2矩阵,返回2.若矩阵为1*2,返回2.若矩阵为2*1也为2,这样就明显的出现问题了。

    这边是不注意,导致的问题。其实如果使用一个size函数,很轻松就搞定了,而且像这种不稳定的情况也会很少发生。

    ^.^

  • 相关阅读:
    Java模拟ATM运行过程(第一版)
    双色Hanoi塔问题及判断指令
    一点编程风格
    游戏程序员养成计划
    OGRE编译
    Python学习收藏
    case 语句注意
    [c、c++]宏中"#"和"##"的用法(zz)
    网络代码平台tortoise svn+google code
    使用delegate进行解耦
  • 原文地址:https://www.cnblogs.com/zhongnanshan/p/2181573.html
Copyright © 2011-2022 走看看