for i=2:length(M(:,1))-1
时间: 2023-11-23 12:07:42 浏览: 24
这也是一个MATLAB或类似语言中的for循环语句,其中i是循环变量,其初始值为2,终止条件为length(M(:,1))-1,步长默认为1。在这里,M是一个矩阵或二维数组,M(:,1)表示矩阵的第一列,length(M(:,1))获取了矩阵的行数,因此length(M(:,1))-1表示矩阵的行数减去1。所以,这个循环将会对从第2行到倒数第二行的所有行进行遍历。
相关问题
matlab中%% 驱动力和行驶阻力平衡图 %计算滚动阻力系数,根据汽车理论货车滚动阻力系数公式计算 for j=1:length(i0) %建立主减速比循环层 for k=1:row %建立变速箱循环层 for i=1:length(ig(k,:)) ua(i,:)=0.377*r*n/ig(k,i)/i0(j); end for i=1:length(ig(k,:)) f(i,:)=0.0076+0.000056*(ua(i,:)); end %计算滚动阻力 for i=1:length(ig(k,:)); Ff(i,:)=M*g*f(i,:); end %计算空气阻力 for i=1:length(ig(k,:)); Fw(i,:)=CD*A*(ua(i,:).^2)/21.15; end %计算行驶阻力 for i=1:length(ig(k,:)); F(i,:)=Ff(i,:)+Fw(i,:); end %计算汽车驱动力 for i=1:length(ig(k,:)); Ft(i,:)=Ttq.*ig(k,i).*i0(j)*eta/r; end plot(1); hold on for i=1:length(ig(k,:)); plot(ua(i,:), Ft(i,:),'k'); end hold on xlabel('车速/v(km/h)'); ylabel('驱动力/Ft(KN)'); title('驱动力行驶阻力图'); axis([0 80 0 60000]); i0_cur=i0(j); ig_cur=ig(k,:); fprintf('************************计算结果*****************************\n') fprintf('主减速比为 %4.2f,减速器速比为',i0_cur); disp(ig_cur); %% 动力因数图 for i=1:length(ig(k,:)); D(i,:)= (Ft(i,:)- Fw(i,:))/M/g; end plot(2); hold on for i=1:length(ig(k,:)); plot(ua(i,:), D(i,:),'k'); plot(ua(i,:), f(i,:),'r'); end hold on xlabel('车速v/(km/h)'); ylabel('动力因数'); legend('动力因数','滚动阻力系数f'); title('动力因数图'); axis([0 70 0 5]); end end为什么只输出了一张图
根据你提供的代码,可能是因为你只在循环层中输出了一张图。在第一个循环层中,你只对变速箱进行了循环,并未对主减速比进行循环,所以只输出了一张图。如果你想输出多张驱动力行驶阻力图和动力因数图,需要在主减速比循环层中添加循环,如下所示:
```matlab
for j=1:length(i0) %建立主减速比循环层
for m=1:length(ig) %添加对速比的循环
for k=1:row %建立变速箱循环层
for i=1:length(ig(k,:))
ua(i,:)=0.377*r*n/ig(k,i)/i0(j);
end
for i=1:length(ig(k,:))
f(i,:)=0.0076+0.000056*(ua(i,:));
end
%计算滚动阻力
for i=1:length(ig(k,:));
Ff(i,:)=M*g*f(i,:);
end
%计算空气阻力
for i=1:length(ig(k,:));
Fw(i,:)=CD*A*(ua(i,:).^2)/21.15;
end
%计算行驶阻力
for i=1:length(ig(k,:));
F(i,:)=Ff(i,:)+Fw(i,:);
end
%计算汽车驱动力
for i=1:length(ig(k,:));
Ft(i,:)=Ttq.*ig(k,i).*i0(j)*eta/r;
end
plot(1);
hold on
for i=1:length(ig(k,:));
plot(ua(i,:), Ft(i,:),'k');
end
hold on
xlabel('车速/v(km/h)');
ylabel('驱动力/Ft(KN)');
title('驱动力行驶阻力图');
axis([0 80 0 60000]);
i0_cur=i0(j);
ig_cur=ig(k,:);
fprintf('************************计算结果*****************************\n')
fprintf('主减速比为 %4.2f,减速器速比为',i0_cur);
disp(ig_cur);
%% 动力因数图
for i=1:length(ig(k,:));
D(i,:)= (Ft(i,:)- Fw(i,:))/M/g;
end
plot(2);
hold on
for i=1:length(ig(k,:));
plot(ua(i,:), D(i,:),'k');
plot(ua(i,:), f(i,:),'r');
end
hold on
xlabel('车速v/(km/h)');
ylabel('动力因数');
legend('动力因数','滚动阻力系数f');
title('动力因数图');
axis([0 70 0 5]);
end
end
end
```
这样每个速比下都会输出一张驱动力行驶阻力图和一张动力因数图。
修正代码:clear x= linspace(-2, 2, 100); y= linspace(-2, 2, 100); nx=length(x); ny=length(y); for i=1:nx for j=1:ny f(i,j)=franke([x(i) y(j)]); end end figure(1) mesh(x,y,f) title('原始曲面') k=1; r1=linspace(-2, 2, 10); s1=linspace(-2, 2, 10); for i=1:length(r1) for j=1:length(s1) M(k,:)=[r1(i) s1(j)];%M中是均匀采样点的坐标 k=k+1; end end m=size(M,1); for k=1:m MV(k)=franke(M(k,:));%采样点相应的函数值 end figure(4)%画出均匀采样点 for i=1:m plot(M(i,1),M(i,2),'.') hold on end title('均匀采样点') %计算系数矩阵 %RBF sigma=0.2; x_g=zeros(100,100); for j=1:100 for k=1:100 dist=sqrt((r1(j)-r1(k))^2+(s1(j)-s1(k))^2); x_g(j,k)=exp(-(dist)/2*sigma^2);%gauss %x_g(j,k)=((dist)^2+1)^0.5; end end d=x_g\MV';
修正后的代码如下:
```matlab
clear
x = linspace(-2, 2, 100);
y = linspace(-2, 2, 100);
nx = length(x);
ny = length(y);
for i = 1:nx
for j = 1:ny
f(i,j) = franke([x(i) y(j)]);
end
end
figure(1)
mesh(x,y,f)
title('原始曲面')
k = 1;
r1 = linspace(-2, 2, 10);
s1 = linspace(-2, 2, 10);
for i = 1:length(r1)
for j = 1:length(s1)
M(k,:) = [r1(i) s1(j)]; % M中是均匀采样点的坐标
k = k+1;
end
end
m = size(M,1);
figure(2)
for i = 1:m
plot(M(i,1),M(i,2),'.')
hold on
end
title('均匀采样点')
% 计算系数矩阵
% RBF sigma=0.2;
x_g = zeros(m,m);
for j = 1:m
for k = 1:m
dist = sqrt((M(j,1)-M(k,1))^2 + (M(j,2)-M(k,2))^2);
x_g(j,k) = exp(-(dist)^2/(2*sigma^2)); % gauss
% x_g(j,k) = ((dist)^2+1)^0.5;
end
end
d = x_g\MV';
```
修正点:
1. 修正了计算系数矩阵时,距离计算公式的错误。
2. 修正了画均匀采样点的代码错误,将 figure(4) 改为 figure(2)。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![m](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)