Sir plz help me to rectify this error

2 views (last 30 days)
X=reshape(x,size(Y));
where x=1; and Y=256 * 256 uint8
I got the error like this
"To RESHAPE the number of elements must not change."

Accepted Answer

Image Analyst
Image Analyst on 6 Aug 2016
Since x=1, you can use ones():
X = ones(size(Y)); % X is a double
If x is not one, but some other scalar, then you can use.
X = x * ones(size(Y)); % X is a double
If you want X to also be uint8, pass that class in:
X = ones(size(Y), 'uint8'); % Now X will also be uint8

More Answers (1)

Walter Roberson
Walter Roberson on 6 Aug 2016
You cannot reshape a scalar into a 256 by 256 matrix. reshape() cannot create new data.
Perhaps you want
X = repmat(x, size(Y));

Community Treasure Hunt

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

Start Hunting!