Array indices must be positive integers or logical values.

2 次查看(过去 30 天)
z=0;
z1=0;
aa=zeros(3,3);
for i=1:k
z=z+t(i);
z1=z1+t(i-1);
aa(1,1)= aa(1,1) + (Qbar(1,1)*((-(T*0.5)+z)-(-(T*0.5)+z1)));
end

回答(2 个)

Karim
Karim 2022-7-10
The following part of you code can produce an error: i starts at 1, hence you are trying to acces t(0) which is not possible. In matlab the indexing starts at 1, hence the first element in the array t will be t(1)
for i = 1:k
...
z1 = z1+t(i-1);
...
end

Dhritishman
Dhritishman 2022-7-10
z1=z1+t(i-1);
In your code, the value of i starts at 1, so t(i-1) will be trying to access t(0) which MATLAB doesn't allow as indexing should start from 1. Hence, it throws an error. The first element in the array t will be t(1), not t(0).

类别

Help CenterFile Exchange 中查找有关 Operators and Elementary Operations 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by