Posts Tagged ‘multi-dimentional matrix’

## Working with 3D matrix in Matlab

November 16, 2009
2 comments

To visualize the 3D matrix just consider that them as stack of images or layers.

{There is one more very important way, that is third dimension representing the feature vector’s length}

So a(:, :, i) = all elements in the layer i, so changing i will give you next image.

where a(r,c, i) will move in the image.

a = []; a(:,1,:) = [111 112 113 114 ; 121 122 123 124 ; 131 132 133 134]; a(:,2,:) = [211 212 213 214 ; 221 222 223 224 ; 231 232 233 234]; a(:,3,:) = [311 312 113 114 ; 321 322 323 324 ; 331 332 333 334]; a(:,4,:) = [411 412 113 114 ; 421 422 423 424 ; 431 432 433 434]; a(:,5,:)= [511 512 513 514 ; 521 522 523 524 ; 531 532 533 534];

Will make the 3D matrix ‘a’

size(a) ans = 3 5 4

That is there are 4 images and each image is of 3 rows and 5 cols.

But let’s Say you want to represent 3rd dimension as the feature vector so each a(r,c, : ) represents a feature vector.

Now let’s say you want to make a 3D matrix from one feature vector.

vt = squeeze([a( 2,1, : ) ] ); vt = vt(:)'; %//make it into 2 by 3 by length(feature) matrix %//repmat will repeat this matrix and make a 6 row matrix %//the reshape picks the elements from the 1st col, 1st row and start moving downward in the row and so on %//therefore each time it will meet same element as it moves down the row and fills our first image tempT = (reshape(repmat(vt, 2*3,1), 2, 3, length(vt))); size(tempT) ans = 2 3 4

Advertisements