n_test=[1000 1500 2000 2500 3000 4000 5000 6000];%发动机转速向量 T_test=[135 148 158 163 162 160 163 151];%发动机转矩向量 figure(1) plot(n_test,T_test,'g'); hold on grid on p=polyfit(n_test,T_test,3); n=[1000:1:6000]; Ttq=polyval(p,n);报错显示无法执行赋值,因为左侧的索引与右侧的大小不兼容。
时间: 2024-02-29 10:51:05 浏览: 108
Test_Bench.rar_Test_Bench_VHDL 测试向量_test bench_testbench例子_vhdl
5星 · 资源好评率100%
这个错误是因为 `Ttq` 数组的大小与 `n` 数组的大小不匹配。在使用 `polyval` 函数时,需要指定一个向量作为第一个输入参数,表示要计算多少个点的函数值。根据你的代码,`n` 向量的长度为 5001,因此你需要将 `Ttq` 向量的长度也设置为 5001。你可以使用下面的代码来解决这个问题:
```
n_test=[1000 1500 2000 2500 3000 4000 5000 6000];
T_test=[135 148 158 163 162 160 163 151];
figure(1)
plot(n_test,T_test,'g');
hold on
grid on
p=polyfit(n_test,T_test,3);
n=[1000:1:6000];
Ttq=zeros(1,length(n)); % 初始化 Ttq 向量
for i=1:length(n)
Ttq(i)=polyval(p,n(i));
end
```
这里我在 `Ttq` 向量之前添加了一行 `Ttq=zeros(1,length(n));`,用于初始化 `Ttq` 向量的大小。然后在 for 循环中计算 `Ttq` 向量的每个元素。
阅读全文