how to solve this error ? Error using horzcat Dimensions of matrices being concatenated are not consistent.
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Khoirunnisya Zawawi
il 20 Ott 2016
Commentato: Walter Roberson
il 25 Giu 2018
I found a code about implementation of genetic algorithm in TSP. it's running but suddenly this error appears :
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
Error in elitism (line 15)
chrom = [fitness oldchrom;fitness2 newchrom];
i look for information about horzcat, it means that the array that i wanna combine dont have the same length?
can someone show me how to handle and solve this error. thank you so much!
this is code in elitism.m
% -------------------------------------------------------------------------
% Procedure of Elitism
% -------------------------------------------------------------------------
function chrom = elitism (fitness, newchrom, oldchrom, matrix_cost, nind, endNode, link_matrix)
% function name : elitism
% function input : 1. The fitness of old chromosomes
% 2. The new chromosomes
% 3. The previous / old chromosomes
% 4. The costs
% 5. The number of population
% 6. The destination node
% 7. The adjacency matrix of relationship between nodes
% function output : The chromosomes for the new generation
fitness2 = fitnessV(totalCost(newchrom,matrix_cost,nind,endNode,link_matrix));
chrom = [fitness oldchrom;fitness2 newchrom];
temp = sortrows(chrom);
chrom = temp((size(temp,1)-nind+1):size(temp,1),2:size(temp,2));
end
2 Commenti
Chaya N
il 20 Ott 2016
What are the dimensions of your fitness, oldchrom, fitness2 and newchrom variables?
Could you post some sample data?
Risposta accettata
KSSV
il 20 Ott 2016
You are trying to merge matrices of different order in
chrom = [fitness oldchrom;fitness2 newchrom];
You have to check the dimensions of those matrices.
5 Commenti
Walter Roberson
il 22 Ott 2016
At the command line, give the command
dbstop if error
now run the program. When it stops with the error, you can look at size() of the various objects.
Più risposte (2)
Chaya N
il 23 Ott 2016
Modificato: Chaya N
il 23 Ott 2016
Hello Khoirunnisya, could you please run the following code exactly as it is here and paste the output from your command window?
% -------------------------------------------------------------------------
% Procedure of Elitism
% -------------------------------------------------------------------------
function chrom = elitism (fitness, newchrom, oldchrom, matrix_cost, nind, endNode, link_matrix)
% function name : elitism
% function input : 1. The fitness of old chromosomes
% 2. The new chromosomes
% 3. The previous / old chromosomes
% 4. The costs
% 5. The number of population
% 6. The destination node
% 7. The adjacency matrix of relationship between nodes
% function output : The chromosomes for the new generation
fitness
newchrom
oldchrom
fitness2 = fitnessV(totalCost(newchrom,matrix_cost,nind,endNode,link_matrix))
% chrom = [fitness oldchrom;fitness2 newchrom];
% temp = sortrows(chrom);
% chrom = temp((size(temp,1)-nind+1):size(temp,1),2:size(temp,2));
chrom = 2;
end
Your command window should display the values of the variables fitness, newchrom, oldchrom and fitness2. Do not worry about the outputs from this function yet, I just want an idea about some of your inputs.
4 Commenti
Khoirunnisya Zawawi
il 26 Ott 2016
Modificato: Khoirunnisya Zawawi
il 26 Ott 2016
Chaya N
il 26 Ott 2016
Modificato: Chaya N
il 26 Ott 2016
That error doesn't make sense. There are no structures being passed as input into totalCost.
The input 'routes' seems to be your array newchrom, which according to your previously provided information, is a 20x10 array.
Please clear out your workspace, re-load all necessary variables and run elitism.m again.
Walter Roberson
il 24 Ott 2016
Change
chrom = [fitness oldchrom;fitness2 newchrom];
to
chrom = [repmat(fitness, size(oldchrom,1), 1), oldchrom; repmat(fitness2, size(newchrom,1), 1), newchrom];
4 Commenti
Amrita Rana
il 21 Giu 2018
Error using vertcat Dimensions of matrices being concatenated are not consistent.
Error in Open_dat (line 89) left = find(diff([0; poss_reg])==1);
Can anybody help me ? i am having this error while implementing ecg signal.
Walter Roberson
il 25 Giu 2018
That code does not appear anywhere in this Question, so we have to guess about the sizes.
We can guess that your poss_reg is a row vector when the code expects it to be a column vector.
Chances are there are better was of doing whatever test you are implementing.
Vedere anche
Categorie
Scopri di più su Biomedical Signal Processing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!