Azzera filtri
Azzera filtri

Why do I get this error "In an assignment A(:) = B, the number of elements in A and B must be the same"?

2 visualizzazioni (ultimi 30 giorni)
In this code I created a function to sort a vector from smallest to largest. It works when the vector has odd number of elements but not when it is even. Here's the code:
function[r] =vecsort(n)
r=zeros(size(n));
for i=1:n
[a,b]=min(n);
r(i)=a;
n=n([1:b-1 b+1:end]);
end
end
  2 Commenti
jgg
jgg il 21 Apr 2016
Modificato: jgg il 21 Apr 2016
I do not get that error when I run your code, but it definitely does not sort a vector either. Have you posted the right code?
What was wrong with the sort function?
Mohannad Abboushi
Mohannad Abboushi il 21 Apr 2016
I have to write a function without using the built in sort feature of matlab. Also that's what I get when I use it.

Accedi per commentare.

Risposta accettata

Jos (10584)
Jos (10584) il 21 Apr 2016
You seem to use the variable n in two ways:
  1. an unsorted variable (vector? or array?)
  2. the number of elements of something (for i=1:n)
I assume you want to change the second one.
Furthermore, min(A) will give a single value when A is a vector, but multiple values when A is a matrix ...

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements 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!

Translated by