clear;clc;
[FileName,PathName]=uigetfile('*.txt','C:\Users\admin\Desktop');
fid=fopen([PathName FileName]);
temp=textscan(fid,'%s %s %s %s');
fclose(fid);
data=[];
for i=1:3
for j=1:23
data(j,i)=str2num('temp{1,i+1}{j,1}');
end
end
[FileName,PathName]=uigetfile('.txt','C:\Users\admin\Desktop');
fid=fopen([PathName FileName]);
dataw=textscan(fid,'%s %s %s %s');
fclose(fid);
WX=ones(32,42);
k1=0;k2=0;k3=0;k4=0;
R=rand(32,42)*10;
for j=1:2:32
for i=1:23
if temp{1,1}{i,1}==dataw{1,1}{(j-1)/2+1,1};
k1=i;
break;
end
end
for i=1:23
if temp{1,1}{i,1}==dataw{1,2}{(j-1)/2+1,1};
k2=i;
break;
end
end
for i=1:23
if temp{1,1}{i,1}==dataw{1,3}{(j-1)/2+1,1};
k3=i;
break;
end
end
for i=1:23
if temp{1,1}{i,1}==dataw{1,4}{(j-1)/2+1,1};
k4=i;
break;
end
end
WX(j,1)=sqrt(sum((data(k1,:)-data(k2,:)).^2));
wc=0.01+WX(j,1)*R(j,i)*10^-5;
WX(j,1)=WX(j,1)+wc;
WX(j,2:4)=data(k1,:);
WX(j,5:7)=data(k2,:);
WX(j,8)=sqrt(sum((data(k1,:)-data(k3,:)).^2));
wc=0.01+WX(j,8)*R(j,i)*10^-5;
WX(j,8)=WX(j,8)+wc;
WX(j,9:11)=data(k1,:);
WX(j,12:14)=data(k3,:);
WX(j,15)=sqrt(sum((data(k1,:)-data(k4,:)).^2));
wc=0.01+WX(j,15)*R(j,i)*10^-5;
WX(j,15)=WX(j,15)+wc;
WX(j,16:18)=data(k1,:);
WX(j,19:21)=data(k4,:);
WX(j,22)=sqrt(sum((data(k2,:)-data(k3,:)).^2));
wc=0.01+WX(j,22)*R(j,i)*10^-5;
WX(j,22)=WX(j,22)+wc;
WX(j,23:25)=data(k2,:);
WX(j,26:28)=data(k3,:);
WX(j,29)=sqrt(sum((data(k2,:)-data(k4,:)).^2));
wc=0.01+WX(j,29)*R(j,i)*l0^-5;
WX(j,29)=WX(j,29)+wc;
WX(j,30:32)=data(k2,:);
WX(j,33:35)=data(k4,:);
WX(j,36)=sqrt(sum((data(k3,:)-data(k4,:)).^2));
wc=0.01+WX(j,36)*R(j,i)*10^-5;
WX(j,36)=WX(j,36)+wc;
WX(j,37:39)=data(k3,:);
WX(j,40:42)=data(k4,:);
end
Gu=zeros(96,96);
E=zeros(6,6);
a=zeros(2,3);
for i=1:2:32
E(1,1)=(WX(i,2)-WX(i,5))/WX(i,1);
E(1,2)=(WX(i,3)-WX(i,6))/WX(i,1);
E(1,3)=(WX(i,4)-WX(i,7))/WX(i,1);
E(1,4)=1;
a(1,:)=WX(i,2:4)-WX(i,30:32);
a(2,:)=WX(i,5:7)-WX(i,33:35);
E(1,5)=dot(a(1,:),a(2,:));
a(1,:)=WX(i,2:4)-WX(i,37:39);
a(2,:)=WX(i,5:7)-WX(i,40:42);
Gu(6*((i-1)/2+1-1)+1:6*((i-1)/2+1-1)+6,6*((i-1)/2+1-1)+1:6*((i-1)/2+1-1)+6)=E;
end
K=zeros(96,1);
PK=[];
k=0;
for j=1:2:32
for i=1:7:36
k=k+1;
PK(1,k)=WX(j,i)^2;
end
end
PK(1,97)=Sum(PK);
K=PK(1,1:96)./PK(1,97);
A=diag(inv(Gu));
B=K'.*A;
B=abs(B);
D=[];
for i=1:16
D0=B((i-1)*6+1)+B((i-1)*6+2)+B((i-1)*6+3)+B((i-1)*6+4)+B((i-1)*6+5)+B((i-1)*6+6);
D=[D;D0];
end
Dop=sort(D);
for i=1:16
for j=1:16
if Dop(i,1)==D(j,1)
Dop(i,3)=j;
break;
end
end
end
wc=1;
Dop(:,4)=Dop(:,1).*wc;
n=16-11;
Dop(1:11,2)=ones(11,1);
Dop(16-n+1:16,2)=zeros(n,1);
Dop0=sum(Dop(1:11,1));
这是一个GPS控制网优化设计程序代码 总显示 data(j,i)=str2num('temp{1,i+1}{j,1}');错误 或者??? Subscripted assignment dimension mismatch. 求高手指点 再谢
matlab中 出现??? Subscripted assignment dimension mismatch.求高手帮忙 谢谢
答案:2 悬赏:0 手机版
解决时间 2021-01-25 04:05
- 提问者网友:缘字诀
- 2021-01-24 16:32
最佳答案
- 五星知识达人网友:西风乍起
- 2021-01-24 16:44
您好,Y_k_1(p,q)=b*exp(-a(p)*k(q))+c
这里面的c是一个数组,一个数和一个数组相加赋值给一个数,那是不对的!
Subscripted assignment dimension mismatch.
这个就是下标不匹配!
主要是你的矩阵尺寸不太一致
建议你使用DEBUG调试程序吧
在你出问题的程序行设置断点
运行程序F5
程序会在断点处停下来,然后用鼠标指向该变量将会显示其尺寸(或在命令窗口查看)
若不一致,则修改,若是一致的
就单步运行F10
继续查找
【建议】多设置几个断点。
这里面的c是一个数组,一个数和一个数组相加赋值给一个数,那是不对的!
Subscripted assignment dimension mismatch.
这个就是下标不匹配!
主要是你的矩阵尺寸不太一致
建议你使用DEBUG调试程序吧
在你出问题的程序行设置断点
运行程序F5
程序会在断点处停下来,然后用鼠标指向该变量将会显示其尺寸(或在命令窗口查看)
若不一致,则修改,若是一致的
就单步运行F10
继续查找
【建议】多设置几个断点。
全部回答
- 1楼网友:长青诗
- 2021-01-24 17:14
y_k_1(p,q)=b*exp(-a(p)*k(q))+c
这里面的c是一个数组,一个数和一个数组相加赋值给一个数,那是不对的!
subscripted assignment dimension mismatch.
这个就是下标不匹配!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯