Borrar filtros
Borrar filtros

Assign vector to vector with gaps

1 visualización (últimos 30 días)
baxbear
baxbear el 16 de Jul. de 2016
Comentada: baxbear el 22 de Jul. de 2016
Stuff doesn't matter - was tired - start reading at Edit1 - sry
Hello,
I have a matrix of row size m and a matrix of row size n where m > n and x = m - n. I also got a vector k of length x with different row indices of m. Now I want to assign n to m by not touching entries m(k) important is that these rows stay unchanged and in place.
Is there an easy one-liner? like:
m(m ~= x) = n;
or
m(m ~= m(x)) = n;
but seems not to work :(
Hope you can help me.
Thanks in advance.
=================================================================
HERE!:-> @Edit1: Oh, uff was late yesterday and yeah what ever I wrote there is pretty confusing and wrong... so again:
Matrix A of size m * _ where m is the number of rows and matrix B of size n * _ where n is the number of rows. Still true is: m > n and x = m - n and V is a vector with x rows.
Example:
A = [1,1,1; 2,2,1; 3,3,4; 8,3,6; 8,3,0; 8,6,3];
B = [4,2,5; 4,3,2; 6,3,2; 8,0,9];
V = [2; 4];
Result in A:
A = [4,2,5; 2,2,1; 4,3,2; 8,3,6; 6,3,2; 8,0,9];
just for much bigger matrices. Sorry for my unclear post yesterday hope you are still willing to help me.
  2 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 16 de Jul. de 2016
You can make your question clear by posting an example
Image Analyst
Image Analyst el 16 de Jul. de 2016
Editada: Image Analyst el 16 de Jul. de 2016
Your terminology is pretty sloppy. Are m and n the width of the matrix (number of columns which is the "row size" or "row length") or the names of the matrices? Are your matrices really column vectors? Or row vectors?
This is what I have so far but can't go further because of ambiguities in your terminology.
m=10
n=6
x = m-n
vec1 = randi(99, 1, m) % First "matrix" (sample data)
vec2 = randi(99, 1, n) % Second "matrix" (sample data)
k = randperm(m, x) % indexes of m

Iniciar sesión para comentar.

Respuesta aceptada

goerk
goerk el 19 de Jul. de 2016
A = [1,1,1; 2,2,1; 3,3,4; 8,3,6; 8,3,0; 8,6,3];
B = [4,2,5; 4,3,2; 6,3,2; 8,0,9];
V = [2; 4];
% create 'inversion' of V (there may be better ways)
notV = 1:size(A,1); % vector from 1 to number of rows
notV(V) = []; % delete rows which are in V
% over write the rows that are not in V
A(notV,:)=B
  3 comentarios
goerk
goerk el 19 de Jul. de 2016
Thanks, that's a nice short solution.
baxbear
baxbear el 22 de Jul. de 2016
Thank you very much :D

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by