matlab中的循环索引未运行,因为"下标索引必须是实数正整数或逻辑。"

时间:2017-10-03 01:56:33

标签: matlab for-loop

我正在尝试使用Euler方法集成DE。我可以通过整个方法一次,但它不会重新循环。我最终得到的错误是"下标索引必须是真正的正整数或逻辑。",我不知道为什么。

我已经找到:Subscript indices must either be real positive integers or logicals, generic solution并尝试了这些故障排除方法,但无济于事。

这是我的代码。我为它的邋iness道歉:

<%= phone_fields.text_field :number,
    id: "contact_phones_attributes_#{phone_fields.index}_number" %>

我问过一些朋友那些代码,他们也不知道。希望有人在这里可以提供帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

您的下标索引不是整数。所以而不是:

int main(int argc, char* argv[]) {
  ifstream ifs(argv[1],ios::in); 

 if(argc!=2)  {
    cout << "Please type main.exe and file name to run the program! Please Try Again" << endl;
}

ifs.open(argv[1]);  

if (!ifs.is_open())  {
    cout << "wrong file name! please open again!" << endl;
}

char line[80]; 
char *point; 

while(ifs.getline(line,80))   //problem seem to be here
{
    cout << "line =" << line << endl;
    point = strtok(line, " ");  
       while(point!=NULL) {
          if (checkdigit(point)) 
               numberofdight++;
        else if(checkkeyword(point)) 
             keywords++;
      else  { }
  }
     cout << point <<endl;
     point = strtok(NULL, " ");
  }
}
ifs.close();

您可以尝试这样的事情:

for i = 1:0.001:200 %Total time of 200 seconds in 0.001 second intervals

此外,由于你在循环中使用向量,你可能希望提前分配它们,所以你可以替换它:

for i = 1:200*1000 %Total time of 200 seconds in 1 millisecond intervals

有了这个:

w = 0.001;
xdot = 0.001;