Why this error happened when i run genetic algorithm?

1 回表示 (過去 30 日間)
Firas Al-Kharabsheh
Firas Al-Kharabsheh 2016 年 4 月 11 日
コメント済み: Brendan Hamm 2016 年 4 月 12 日
when i run this function in genetic algorithm in optimization tool box this error occur
  • Attempt to execute SCRIPT ga as a function:
function [ F ] = FF( A )
% A =[ 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1
% 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1
% 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1
% 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1
% 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1
% 0 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1
% 0 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1
% 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
% 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
% 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 ];
% input ' A = ' ;
[n,m]=size(A);
B=(m+repmat(1:m,n,1)-A.*cumsum(A,2)).*A;
for k=1:n
a=B(k,B(k,:)~=0);
[~,~,kk]=unique(a);
row1{k,1}=accumarray(kk,1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %c= represent sum of rows
c1 = cellfun(@sum, row1);
Z1 = randi([0 1], n,m);
B1=(m+repmat(1:m,n,1)-Z1.*cumsum(Z1,2)).*Z1;
for k=1:n
a=B1(k,B1(k,:)~=0);
[~,~,kk]=unique(a);
row2{k,1}=accumarray(kk,1);
end
d1 = cellfun(@sum, row2);
x1= abs( c1-d1);
% F(X1)
X1 = sum(x1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%Find F(X2)
C=(n+repmat(1:n,m,1)-A'.*cumsum(A',2)).*A';
for k=1:m
a=C(k,C(k,:)~=0);
[~,~,kk]=unique(a);
col1{k,1}=accumarray(kk,1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% x represnt sum of column
c2 = cellfun(@sum, col1);
% x = d.';
Z2 = randi([0 1], n,m);
C2=(n+repmat(1:n,m,1)-Z2'.*cumsum(Z2',2)).*Z2';
for k=1:m
a=C2(k,C2(k,:)~=0);
[~,~,kk]=unique(a);
col1{k,1}=accumarray(kk,1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% x represnt sum of column
c3 = cellfun(@sum, col1);
c4 = abs (c3-c2);
X2 = sum(c4);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%Find F(X3)
idx = A~=1;
r = sum(idx,2);
Z3 = randi([0 1], n,m);
idx1 = Z3~=1;
r5 = sum(idx1,2);
r6 = abs (r-r5);
X3= sum(r6);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%Find F(X4)
idx = A~=1;
c = sum(idx,1);
Z4 = randi([0 1], n,m);
idx1 = Z4~=1;
c5 = sum(idx1,1);
c6 = abs(c-c5);
X4= sum(c6);
F = X1+X2+X3+X4;
end

採用された回答

Brendan Hamm
Brendan Hamm 2016 年 4 月 11 日
It sounds likely that you have a different file ga.m which is being found by MATLAB first.
If you type:
which ga
you will be returned the file which MATLAB is trying to execute. If this is the correct version from the Global Optimization toolbox, it would be found in matlabroot\toolbox\globaloptim\globaloptim\ga.m. You then would need to remane the file or place it lower on the MATLAB Search Path .
  4 件のコメント
Firas Al-Kharabsheh
Firas Al-Kharabsheh 2016 年 4 月 11 日
i see this C:\Users\Haitham Khlifat\Documents\MATLAB\ga.m
Brendan Hamm
Brendan Hamm 2016 年 4 月 12 日
Exactly, this is not the function which comes with the Toolbox. Go to that location and change the name of that file to something else.
Presumably if you type
which ga -all
you will find the location I mention beneath this on the list. This means that MATLAB will find your files in the Documents directory before it finds files provied with your toolboxes.
Type:
rmpath('C:\Users\Haitham Khlifat\Documents\MATLAB\ga.m')
addpath('C:\Users\Haitham Khlifat\Documents\MATLAB\ga.m','-end')
and this will make it find your files last. Read that link I posted above so you can understand how MATLAB searches for files.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGenetic Algorithm についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by