matlab - MATLAB | 试图访问 x(0);索引必须是正整数或逻辑
问题描述
我正在尝试使用 matlab 为我的 hemowork 编写代码,但我已经遇到了这个错误 Attempted to access x(0); index must be a positive
integer or logical.
,所以这是我的代码:
Ax=0;
Ay=1.5;
Bx=40;
By=0;
Cx=0;
Cy=-1.5;
for t = 0:0.01:1
x(t)=((1-t).^2)*Ax+2*t*(1-t)*Bx+(t.^2)*Cx;
y(t)=((1-t).^2)*Ay+2*t*(1-t)*By+(t.^2)*Cy;
end
如果我更改t = 1:1:100
代码工作的值但我需要这个值't = 0:0.01:1`怎么做?谢谢
解决方案
请注意,MATLAB 中的索引从 1 开始。您试图将索引保持为 0,因此会弹出错误。如果要从 0 开始,则定义另一个变量并沿着该变量的索引运行循环。检查以下代码:
Ax=0;
Ay=1.5;
Bx=40;
By=0;
Cx=0;
Cy=-1.5;
t = 0:0.01:1 ;
for i = 1:length(t)
x(i)=((1-t(i)).^2)*Ax+2*t(i)*(1-t(i))*Bx+(t(i)^2)*Cx;
y(i)=((1-t(i)).^2)*Ay+2*t(i)*(1-t(i))*By+(t(i)^2)*Cy;
end
正如您在 MATLAB 中一样,请注意,您可以对代码进行矢量化处理。一旦您了解了 MATLAB 的基础知识,您就可以尝试对代码进行矢量化处理。
%% Vectorized
x=((1-t).^2).*Ax+2*t.*(1-t)*Bx+(t.^2)*Cx;
y=((1-t).^2).*Ay+2*t.*(1-t)*By+(t.^2)*Cy;
推荐阅读
- android - 我们如何更改密钥库别名
- javascript - 显示函数而不是返回数据值
- ios - 更新 ios 13 后,Inapp 浏览器在 ionic 3 项目中显示错误
- reactjs - 无法在反应应用程序中使用反应贝宝按钮 v2 进行测试交易
- docker - 使用 TensorFlow 服务(Docker/Kubernetes)时的数据处理
- javascript - 即使鼠标移出,Mouseenter 事件也会触发两次
- hyperlink - 将鼠标悬停在文本上方时,使 Latex 中的 href 改变颜色
- javascript - nodejs - 链接依赖的异步操作
- laravel - Laravel 外键约束形成错误,我的 category_id 外键有问题,
- npm - 在“npm update -g”之后添加了未定义的包