[討論] 請問比對求解問題...已回收
各位高手你們好,我在寫一個窮舉法的比對求解遇到了問題
程式的概念是,先窮舉1-10的所有排列組合,
再利用這些組合依次和EXCEL裡的資料作比對,
只要EXCEL矩陣位置大於0等於排列組合的值就代入指定的數值
一個排列組合和EXCEL比對完後,再換下一個排列組合
EXCEL有一個10X10的矩陣,比對後每一行都會挑出最大值
將這十個值加起來就得到這一排列組合的總值,
最後再將總值最大的排列組合的值顯示出來。程式如下:
------------------------------分隔線------------------------------------
A = perms(1:10);
A = A';
[N]=xlsread('a.xls');
X=zeros(10,1);
for k=1:1:10;
il = A (:,k);
for i=1:1:10;
for j=1:1:10;
if find(N(i,j)>0);
if j ==il(1,:); %儲位距離設定
N(i,j)=2;
elseif j==i1(2,:);
N(i,j)=4;
elseif j==i1(3,:);
N(i,j)=4;
elseif j==i1(4,:);
N(i,j)=6;
elseif j==i1(5,:);
N(i,j)=8;
elseif j==i1(6,:);
N(i,j)=10;
elseif j==i1(7,:);
N(i,j)=10;
elseif j==i1(8,:);
N(i,j)=12;
elseif j==i1(9,:);
N(i,j)=14;
elseif j==i1(10,:);
N(i,j)=16;
end;
else
N(i,j)=0;
end;
end;
m1=m1+max(N(i,:)); %選出單筆訂單中距離最大者,並依每張訂單累加
end
X = m1; %列出所有訂單距離的總合
end;
max(X) %列出最佳距離組合之值
-----------------------------分隔線--------------------------------------
小弟不才,編譯一直卡在elseif j==i1(2,:);這裡,
真的想了很久,請板上各位高手指點一下,感激不盡。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.249.106.4
→
05/25 16:24, , 1F
05/25 16:24, 1F