选址问题,matlab编程未定义错误,Error in ==> Untitled at 86,急求,在线等
clcclearn=53;a=zeros(n);a(1,36)=10.3;a(1,37)=5.9;a(1,38)=11.2;。。。。(此处省略)a=a+a';%Floyd...
clc
clear
n=53;
a=zeros(n);
a(1,36)=10.3;a(1,37)=5.9;a(1,38)=11.2;
。。。。 (此处省略)a=a+a';
% Floyd算法求每对顶点之间的最短距离
M=max(max(a))*n^2;% M为充分大的正实数
d=a+((a==0)-eye(n))*M;
path=zeros(n);
for k=1:n
for i=1:n
for j=1:n
if d(i,j)>d(i,k)+d(k,j)
d(i,j)=d(i,k)+d(k,j);
path(i,j)=k;
end
end
end
end
%确定救户站的位置
L=[];L1=[];L2=[];S=[];
c=1;
for x=1:53
for y=1:53
for z=1:53
for n=1:53
L(1)=d(n,x);
L(2)=d(n,y);
L(3)=d(n,z);
L1(n)=min(L);
end
b=1:n;
if(L1(b)<=20)
L2(1)=x;
L2(2)=y;
L2(3)=z;
wz{c}=L2;
S(c)=sum(L1);
c=c+1;
end
end
end
end
c=find(S==min(S));
wz=wz{c(1)};%救户站位置
fprintf('救户站的位置 :')
disp(wz)
选址问题,到第二布能够正确求出最短距离在矩阵,但是第三步显示:
??? Index exceeds matrix dimensions.
Error in ==> Untitled at 86
wz=wz{c(1)};%救户站位置
无法求出救户站设置地点 展开
clear
n=53;
a=zeros(n);
a(1,36)=10.3;a(1,37)=5.9;a(1,38)=11.2;
。。。。 (此处省略)a=a+a';
% Floyd算法求每对顶点之间的最短距离
M=max(max(a))*n^2;% M为充分大的正实数
d=a+((a==0)-eye(n))*M;
path=zeros(n);
for k=1:n
for i=1:n
for j=1:n
if d(i,j)>d(i,k)+d(k,j)
d(i,j)=d(i,k)+d(k,j);
path(i,j)=k;
end
end
end
end
%确定救户站的位置
L=[];L1=[];L2=[];S=[];
c=1;
for x=1:53
for y=1:53
for z=1:53
for n=1:53
L(1)=d(n,x);
L(2)=d(n,y);
L(3)=d(n,z);
L1(n)=min(L);
end
b=1:n;
if(L1(b)<=20)
L2(1)=x;
L2(2)=y;
L2(3)=z;
wz{c}=L2;
S(c)=sum(L1);
c=c+1;
end
end
end
end
c=find(S==min(S));
wz=wz{c(1)};%救户站位置
fprintf('救户站的位置 :')
disp(wz)
选址问题,到第二布能够正确求出最短距离在矩阵,但是第三步显示:
??? Index exceeds matrix dimensions.
Error in ==> Untitled at 86
wz=wz{c(1)};%救户站位置
无法求出救户站设置地点 展开
2个回答
展开全部
数组越界了,看看wz{c(1)}中c(1)的值,再看看wz的长度
追问
怎么看c(1)的值和wz的长度呀。。。
追答
wz=wz{c(1)};%救户站位置 在这条语句的前面加个断点,调试运行就可以看了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Sievers分析仪
2024-10-13 广告
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询