delete and insert entries in a vector

1 visualización (últimos 30 días)
Deepa Maheshvare
Deepa Maheshvare el 9 de Sept. de 2019
Comentada: Deepa Maheshvare el 9 de Sept. de 2019
Hi All,
I have the following vector
c = [1 1 3 4 5 6 7 8 11 10]
I have to delete entries in position 2 and 9
c_idx = 1:length(c)
c = c(c_idx(c_idx ~=2 & c_idx~=9))
gives,
c_tilda = [ 1 3 4 5 6 7 8 10]
Using c_tilda, I perform a matrix operation
x = A*c_tilda
say, the resulting x is
x = [0.1 0.3 0.4 0.05 0.6 0.7 0.8 0.1]
Now, I'd like to insert values in position 2 and 9 of c in x .
Expected x = [0.1 1 0.3 0.4 0.05 0.6 0.7 0.8 11 0.1]
Could someone suggest how this can be done?
  2 comentarios
Walter Roberson
Walter Roberson el 9 de Sept. de 2019
What happened to the second 0.1 in x? You got rid of the second 0.1 and inserted three new values, 1 11 10
Deepa Maheshvare
Deepa Maheshvare el 9 de Sept. de 2019
Thanks a lot for the repsonse. Please check the edit.

Iniciar sesión para comentar.

Respuesta aceptada

Fabio Freschi
Fabio Freschi el 9 de Sept. de 2019
If A is a matrix, I assume you have column vectors, if not, please provide A
% your (column) vector
c = [1 1 3 4 5 6 7 8 11 10].';
iRemove = [2; 9];
iKeep = setdiff(1:length(c),iRemove);
% dummy A
A = rand(length(iKeep));
% your calculation
xReduced = A*c(iKeep);
% preallocation of x
x = zeros(size(c));
% set complete x vector
x(iKeep) = xReduced;
x(iRemove) = c(iRemove);

Más respuestas (0)

Categorías

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

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by