Scale 3D matrix by 10i
이전 댓글 표시

M = randi([5 10], 1);
N = randi([5 10], 1);
P = randi([20 30], 1);
Y = round(-10 + (10 - (-10)).*rand(M, N, P));
===================================
indexes = 1:P;
scaling = repmat(indexes(:), [M, N, P])
Yscaled = Y.*(scaling.*10)
How I understand this question is that I have to create another 3D matrix and multiple the two (matrix) in order to scale it
How to I create a 3D matric: first page all 1 , second page all 2 , etc up to P
답변 (3개)
Image Analyst
2014년 1월 26일
편집: Image Analyst
2014년 1월 26일
Hint:
y=cat(3, ones(2), 2*ones(2), 3*ones(2)) % Sample initial data.
[rows, columns, planes] = size(y)
m = 10*(1:planes)
m2 = imresize(m', [numel(y), 1], 'nearest')
y_out = reshape(.......
Finish the last line by yourself and it will be done. imresize() requires the Image Processing Toolbox. Type ver to see if you have it.
댓글 수: 1
Amit
2014년 1월 26일
Very nice. You're getting a hang of MATLAB.
Andrei Bobrov
2014년 1월 26일
Yscaled = bsxfun(@times,Y,reshape(1:P,1,1,[])*10)
카테고리
도움말 센터 및 File Exchange에서 Holidays / Seasons에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!