```
function [y1,y2]=Croisement(ch1,ch2)
%ch1 chromosome 1;
%ch2 chromosome 2;
nVar=numel(ch1);
c=randi([1 nVar-1]);
y1=[ch1(1:c) ch2(c+1:end)]
y2=[ch2(1:c) ch1(c+1:end)]
end
```

please how can i write this code by julia ( now this code is done by matlab)
please I need your help

y4lu
March 2, 2018, 3:44am
3
```
function Croisement(ch1, ch2)
##ch1 chromosome 1
##ch2 chromosome 2
n = length(ch1);
c = ceil(Int32, rand()*(n-1)); ## selects from 1 to n-1
y1 = [ch1[1:c]; ch2[c+1:end]];
y2 = [ch2[1:c]; ch1[c+1:end]];
return(y1, y2);
end;
y1, y2 = Croisement(ch1, ch2);
```

1 Like

That works fine. Some suggestions:

you don’t need the `;`

at the end of each line in Julia
`c = rand(1 : n - 1)`

is perhaps easier and more efficient than `c = ceil(Int32, rand()*(n-1))`

you could think about creating a `Chromosome`

type instead of using raw `Vector`

s
There are additional tips I could give you if this is performance-critical, so let me know if that’s the case.

5 Likes

Thank you so much for your answears and helps

slight_smile:

i did this code by Matlab

```
function[c]=croisement2(c1,c2)
%fonction de croisement en deux points
% c1 et c2 sonts les deux parents fils de premiere croisements
n=size(c1,2)-2;
k1=c1;k2=c2;
l=randi(n-1,1,2);
l1=min(l);
l2=max(l);
c1(l1:l2)=k2(l1:l2);
c2(l1:l2)=k1(l1:l2);
c=[c1 c2];
end
```

and I tried to convert it in julia please I need your help is it true?

```
function croisement2(c1,c2)
%fonction de croisement en deux points
% c1 et c2 sonts les deux parents fils de premiere croisements
n=size(c1,2)-2;
k1=c1 ; k2=c2;
l=randi(n-1,1,2);% I don't know how to convert this commond in julia
l1=min(l)
l2=max(l)
c1(l1:l2)=k2(l1:l2)
c2(l1:l2)=k1(l1:l2)
c=[c1 c2]
return (c)
end
c= Croisement2(c1,c2)
Thank you so much
```

```
l=randi(n-1,1,2);% I don't know how to convert this commond in julia
```

See e.g. Generating a random integer in range in Julia - Stack Overflow

The following Julia code should be the equivalent of your MATLAB function:

```
function croisement2(c1,c2)
n = size(c1,2)-2
k1 = copy(c1)
k2 = copy(c2)
l = rand(1:n-1,1,2)
l1, l2 = extrema(l)
c1[l1:l2] = k2[l1:l2]
c2[l1:l2] = k1[l1:l2]
return [c1 c2]
end
```

I encourage you, though, to read Julia’s Noteworthy Differences from other Languages .

1 Like

Thank you so much for your help really thanks to your help I advance slowly

Thank you so much for your help really thanks to your help I advance slowly, I will read it with pleasure

amrods
March 18, 2018, 2:43pm
11

Thank you so much it’s an honour for be to receive your help I will read it …
that encourages me so much …

Thank you so much it’s an honour for be to receive your help I will read it …
that encourages me so much …

please I tried to run this algorithme but I found problem I don’t know why

Finally I could resolve it i must just change some indexes …Thank you