Filter löschen
Filter löschen

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

2 Ansichten (letzte 30 Tage)
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 Kommentare
jgg
jgg am 21 Apr. 2016
Bearbeitet: jgg am 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 am 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jos (10584)
Jos (10584) am 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 ...

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by