Is this a valid expression?
Mostrar comentarios más antiguos
Hi
offsets = [32 48 64 80 96 112];
[X,Y,Z] = ndgrid([-1, 0, 1]);
offsetArray = [Z(:), Y(:), X(:)];
offsetArray(sum( offsetArray == [0, 0, 0], 2 ) == 3, :) = [];
I'm wondering whether below is a valid expression since I see a red tilde warning sign below the left bracket after the transpose sign in below
tmpOffsets = repmat( offsets(:), [1, size( offsetArray, 1 )] )'(:);
And the error message says
tmpOffsets = repmat( offsets(:), [1, size( offsetArray, 1 )] )'(:);
Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
What could possibly went wrong?
Respuesta aceptada
Más respuestas (1)
As matlab tells you is not valid, you can't have (:) on the output of a function. Since (:) is simple a reshape,
tmpOffsets = reshape(repmat( offsets(:), [1, size( offsetArray, 1 )] )', [], 1);
would work.
edit: on the other hand, the above is simply:
tmpOffsets = repelem(offsets(:), size(offsetArray, 1));
1 comentario
Salad Box
el 8 de En. de 2020
Categorías
Más información sobre Matrix Indexing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!