How to customize the answer of Matlab in advance?

Hello,
I have an input matrix like [a b c d e] at the start.
I order these elements in the result according to my codes but I want to predefine the first element of my result. Let's say I obtain a result such as ans = [b e d a c] but I want the first element of this matrix to be d for instance.
What should I write to achieve this kind of a result?
Thank you :)

5 Comments

What is the expected result?
Actually my input matrix contains x y coordinates of cities and I obtain a distance matrix between cities by calculating the Euclidean distances. I am achieving the optimum routing between these cities in the result. I want this routing to start from the central depot. My routing is like [2 4 6 7 1 5 3 2]. These numbers stand for the city numbers. I want this routing to start from 1 (which is the central depot) and there again.
What do you mean by : My routing is like [2 4 6 7 1 5 3 2] ? and when you say I want this routing to start from 1 do you think it's enough to understand what you are looking for?
This is a vehicle routing problem. A vehicle starts from city 2, then stops by city 4, 6, 7, 1, 5, 3 respectively and comes back again to city 2. I want that the vehicle starts its routing from city 1.
What are you expecting as result?

Answers (4)

Its hard to see what you're trying to achieve, but this MIGHT be what you want to know
> data = [a b c d e];
> order_I_want = [4 3 2 1 5]; %
> data(order_I_want)
ans = [d c b a e]
> output = sort(data)
output = [e b c a d];
> order_I_want = [5 3 2 4 1]; %
> output(order_I_want)
ans = [d c b e a]

1 Comment

"This is a vehicle routing problem. A vehicle starts from city 2, then stops by city 4, 6, 7, 1, 5, 3 respectively and comes back again to city 2. I want that the vehicle starts its routing from city 1."
data = [2 4 6 7 1 5 3];
data = data([find(data==1):end 1:(find(data==1)-1)])
a_input=[1 2 3 4 5]
a_output=[2 5 4 1 3]
a_output(a_output==4)=[];
a_output=[4 a_output]
a=[2 ,4, 6, 7, 1, 5, 3 ]
idx=find(a==1)
out=circshift(a, [0 -idx+1])
n = numel(a);
out = a(mod((2:n+1)-find(a == 1),n)+1);

This question is closed.

Tags

Asked:

on 2 Aug 2013

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!