Assigning values to vectors of different lenghts

2 visualizaciones (últimos 30 días)
Christina
Christina el 27 de Mzo. de 2015
Respondida: Jon el 27 de Mzo. de 2015
Hello,
I've got three vectors, say a(1x4), b(1x4) and c(1x10). Vectors a and c represent the same thing, they are just codes. Vector b let's say it's my objective function.
a = [1 2 3 4]
b = [0.1 0.2 0.3 0.4]
c= [ 4 4 4 2 2 1 3 3 1 4].
I want to get another vector d, which will have the same dimensions as vector d (10x1) and in which the values of vector b will be assigned.
d should be like d = [0.4 0.4 0.4 0.2 0.2 0.1 0.3 0.3 0.1 0.4].
Any thoughts on this?
Many thanks

Respuesta aceptada

Konstantinos Sofos
Konstantinos Sofos el 27 de Mzo. de 2015
Editada: Konstantinos Sofos el 27 de Mzo. de 2015
Hi,
if your starting point is that you have a and c you can make d from b as
[~,idx] = ismember(c,a);
d = b(idx);
>> d
d =
0.4000 0.4000 0.4000 0.2000 0.2000 0.1000 0.3000 0.3000 0.1000 0.4000

Más respuestas (1)

Jon
Jon el 27 de Mzo. de 2015
It's not clear what you need a for. You can make d directly from c and b as follows:
>> d=b(c)
d =
0.4 0.4 0.4 0.2 0.2 0.1
0.3 0.3 0.1 0.4

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by