概述
有一段程序,不是我编写的,用MATLAB仿真总是出现 下面这句话,我知道是矩阵下标不对了,可是怎么改呢,求指教
”Subscripted assignment dimension mismatch.
Error in Untitled3 (line 67)
miu(k,l) = cov(delta_r(k,i,j),delta_r(l,i,j))/(dd_r(k)*dd_r(l));“
代码如下:
L = 10; % 站间距
delta_tdoa = 1e-8; % 时差测量误差
delta_s = 0; % 站址测量误差
c = 3e5; % 光速(公里)
alpha = 30; % 站间夹角
d_r = delta_tdoa*c; % 距离差误差
% 计算站址
% s0
x0 = 0;
y0 = 0;
z0 = 0;
% s1
x1 = L*cos(30*pi/180);
y1 = L*sin(30*pi/180);
z1 = 0.1;
% s2
x2 = L*cos(150*pi/180);
y2 = L*sin(150*pi/180);
z2 = 0.2;
% s3
x3 = 0;
y3 = -L;
z3 = 0.3;
% he
xd = [x0,x1,x2,x3];
yd = [y0,y1,y2,y3];
zd = [z0,z1,z2,z3];
%
for i=1:401 % x km
for j=1:401 % y km
% 目标点
x(i,j) = (i-201);
y(i,j) = (j-201);
z(i,j) = 2;
% 目标到各站距离ri
for k = 1:4
r(k,i,j) = abs(sqrt((x(i,j)-xd(k))^2+(y(i,j)-yd(k))^2+(z(i,j)-zd(k))^2));
end
% 距离差Ari
for k = 2:4
delta_r(k-1,i,j) = r(k,i,j)-r(1,i,j);
end
% c
for k = 2:4
f(k-1,1) = ((x(i,j)-xd(1))/r(1,i,j))-((x(i,j)-xd(k))/r(k,i,j));
f(k-1,2) = ((y(i,j)-yd(1))/r(1,i,j))-((y(i,j)-yd(k))/r(k,i,j));
f(k-1,3) = ((z(i,j)-zd(1))/r(1,i,j))-((z(i,j)-zd(k))/r(k,i,j));
end
c = ((f'*f)^-1)*(f');
%miu
for m = 1:3
dd_r(m) = d_r; % ? 这里可以求统计平均
end
for k = 1:3
for l = 1:3
miu(k,l) = cov(delta_r(k,i,j),delta_r(l,i,j))/(dd_r(k)*dd_r(l));(就是这一句有错)
end
end
%e
for k = 1:3
for l =1:3
if k == l
e(k,l) = dd_r(k)^2 + 2*delta_s^2;
else
e(k,l) = miu(k,l)*dd_r(k)*dd_r(l) + delta_s^2;
end
end
end
% gdop
cc = 0;
for k = 1:3
for l = 1:3
cc = cc + (c(1,k)*c(1,l)+c(2,k)*c(2,l)+c(3,k)*c(3,l))*e(k,l);
end
end
gdop(i,j) = sqrt(cc);
end
end
%绘图程序:
figure;
mesh((-200:200),(-200:200),gdop(1:401,1:401).');
title('GDOP of axis');
xlabel('x axis *10e4(m)');
ylabel('y axis *10e4(m)');
figure;
contour((gdop(1:401,1:401)).',200);
title('contour line of GDOP');
xlabel('x axis *10e4(m)');
ylabel('y axis *10e4(m)');
最后
以上就是仁爱凉面为你收集整理的无源定位 matlab,关于无源定位TDOA算法GDOP分析的问题的全部内容,希望文章能够帮你解决无源定位 matlab,关于无源定位TDOA算法GDOP分析的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复