Create an array from another and find the indices.
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
João
el 11 de Feb. de 2014
Comentada: Jos (10584)
el 11 de Feb. de 2014
Hi everyone,
I have an array with variables like S,SV, V etc now I want to create a new array only with the V variable so for example;
V
SV
S
V
will become
V
V
after this I need to know the indices where I found each one of the V variables, so in this example I should get Indices = 1 and 4
Thank you for the help.
2 comentarios
Walter Roberson
el 11 de Feb. de 2014
Are those strings, or are they numeric values? If they are numeric values, are they scalars or vectors or arrays? If they are vectors or arrays are all of them the same size?
Respuesta aceptada
Jos (10584)
el 11 de Feb. de 2014
MySet = {'S' 'V' 'SV' 'S' 'V' 'V' 'S' 'SV' 'V'}
MyStr = 'V'
tf = strcmp(MySet, MyStr)
index = find(tf)
KeepSet1 = MySet(tf)
KeepSet2 = repmat(MyStr,1,numel(index)) % same result
2 comentarios
Jos (10584)
el 11 de Feb. de 2014
Oh, I made a small mistake. I just wanted to point out that what you want to keep are only the V's. There are numel(index) elements to keep. These elements can be retrieved from MySet using the Index OR by repeating the element a number of times. The correct code, however, is:
KeepSet2 = repmat({MyStr},1,numel(index)) % between { }
Más respuestas (2)
David Sanchez
el 11 de Feb. de 2014
most_common_string = {'V','SV','S','V','S'};
wanted_string='V';
idx = getnameidx(most_common_string,wanted_string);
idx = find(most_common_string==wanted_string);
k=1;
for i=1:numel(most_common_string)
if most_common_string{i} == 'V'
periodo(k)=i;
k = k+1;
end
end
periodo =
1 4
new_string_array = most_common_string(periodo);
new_string_array =
'V' 'V'
Ver también
Categorías
Más información sobre Matrix Indexing 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!