How to get values in an 8x8x4096 matrix?
조회 수: 4 (최근 30일)
이전 댓글 표시
I have a matrix of size 8x8x4096. I need to get the values of positions (1,2),(2,2),(2,1) of each 8x8 block of all 4096 such blocks into a variable "x","y","z" respectively. Means all the values at locations (1,2) of 4096 blocks in variable x and (2,2) in y and (2,1) in z respectively.
댓글 수: 0
채택된 답변
Andrei Bobrov
2018년 3월 1일
편집: Andrei Bobrov
2018년 3월 1일
Let M - your array [8x8x4096].
One variant:
[m,n,k] = size(M);
x = [1,2,2];
y = [2,2,1];
out = M(sub2ind([m,n],x(:),y(:)) + (0:k-1)*m*n)'; % MATLAB >= R2016b
% if MATLAB < R2016b then
out = M(bsxfun( @plus,sub2ind([m,n],x(:),y(:)),(0:k-1)*m*n))';
T_out = array2table(out,'v',{'x','y','z'});
댓글 수: 2
Andrei Bobrov
2018년 3월 1일
편집: Andrei Bobrov
2018년 3월 1일
Use out(:,1) or T_out.x or just see and use variant from Stephen's answer.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!