Is this a valid expression?
Show older comments
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?
Accepted Answer
More Answers (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));
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!