matlab要串联的数组的维度不一致问题?
这是上课老师给的程序我照搬复制到我matlab里但是一直说我串联的数组的维度不一致,是有什么问题吗?functionDrawSatelliteOrbitclearall;...
这是上课老师给的程序 我照搬复制到我matlab里 但是一直说我串联的数组的维度不一致,是有什么问题吗?
function DrawSatelliteOrbit
clear all;clc;
a = 26560; %卫星椭圆轨道的长半轴
e = 0.02; %椭圆的离心率
E = [0:0.1:2*pi]; %0到2*pi间以0.1为间距取值
x = a * (cos(E) - e); %卫星轨道坐标系中的x值
y = a * sqrt(1 - e^2) * sin(E); %卫星轨道坐标系中的y值
z = 0 * E;%卫星轨道坐标系中的z值
DtoR = 2 * pi / 360;
A1 = [32.8 92.8 152.8 212.6 272.8 332.8]; %卫星星座数据,见图1.2卫星6个轨道平面对应的升交点的经度(以度数表示)
for k = 1:6 %6个轨道平面
A = A1(k) * DtoR; %升交点的经度
B = 55 * DtoR; %轨道倾角
C = pi / 100; %近地点的幅角
%总共有6个卫星轨道平面
R3 = [cos(A) -sin(A) 0;
sin(A) cos(A) 0;
0 0 1;];
R1 = [1 0 0;
0 cos(B)-sin(B);
0 sin(B) cos(B); ];%--------------程序补充部分
R2 = [cos(C) -sin(C) 0;
sin(C) cos(C) 0;
0 0 1;];%--------------程序补充部分
R312 = R3 * R1 * R2; %坐标转换矩阵
Ans = R312 * [x; y; z;];
x1 = Ans(1,:); %取矩阵Ans第一行中的值
y1 = Ans(2,:); %取矩阵Ans第二行中的值
z1 = Ans(3,:); %取矩阵Ans第三行中的值
plot3c(x1,y1,z1,k); %调用子程序
hold on;
axis equal;
axis off; 展开
function DrawSatelliteOrbit
clear all;clc;
a = 26560; %卫星椭圆轨道的长半轴
e = 0.02; %椭圆的离心率
E = [0:0.1:2*pi]; %0到2*pi间以0.1为间距取值
x = a * (cos(E) - e); %卫星轨道坐标系中的x值
y = a * sqrt(1 - e^2) * sin(E); %卫星轨道坐标系中的y值
z = 0 * E;%卫星轨道坐标系中的z值
DtoR = 2 * pi / 360;
A1 = [32.8 92.8 152.8 212.6 272.8 332.8]; %卫星星座数据,见图1.2卫星6个轨道平面对应的升交点的经度(以度数表示)
for k = 1:6 %6个轨道平面
A = A1(k) * DtoR; %升交点的经度
B = 55 * DtoR; %轨道倾角
C = pi / 100; %近地点的幅角
%总共有6个卫星轨道平面
R3 = [cos(A) -sin(A) 0;
sin(A) cos(A) 0;
0 0 1;];
R1 = [1 0 0;
0 cos(B)-sin(B);
0 sin(B) cos(B); ];%--------------程序补充部分
R2 = [cos(C) -sin(C) 0;
sin(C) cos(C) 0;
0 0 1;];%--------------程序补充部分
R312 = R3 * R1 * R2; %坐标转换矩阵
Ans = R312 * [x; y; z;];
x1 = Ans(1,:); %取矩阵Ans第一行中的值
y1 = Ans(2,:); %取矩阵Ans第二行中的值
z1 = Ans(3,:); %取矩阵Ans第三行中的值
plot3c(x1,y1,z1,k); %调用子程序
hold on;
axis equal;
axis off; 展开
1个回答
展开全部
串联的矩阵的维度不一致。表明在矩阵进行运算时,两个矩阵的内积不相等。
1、dx=[-1,1;-1,1;-1;1] 这句代码多了一个分号,更改为dx=[-1,1;-1,1;-1,1];。
2、net=newff(dx,[3,7,1],{'tansig','tangsig','purelin'},'traingdx'); 代码中的训练方法('tangsig')书写多了一个字母,更改为 'tansig'。
3、out=mapstd('reverse',An,ts);这句代码中的一个字母(An)书写错误,更改为为 an。
4、newk=a(1,:);这句代码中的一个字母n,更改为newk=an(1,:)。
运行结果如下图:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询