A vectorisation problem with arrays (or matrices) and structs

1 次查看(过去 30 天)
I have a m x n x p array, consisting of 'p' frames of height 'm' and width 'n' from a movie file. I want to assign all of the images in the array to a struct without using a 'for' loop.
i.e. my code is:
videoHeight = size(movieMatrix,1);
videoWidth = size(movieMatrix,2);
totalFrames = size(movieMatrix,3);
movieStructure(totalFrames).cdata = zeros(videoHeight,videoWidth);
movieStructure(1:totalFrames).cdata = movieMatrix(:,:,1:totalFrames);
instead of:
movieStructure(totalFrames).cdata = zeros(videoHeight,videoWidth);
for i = 1:totalFrames
movieStructure(i).cdata = movieMatrix(:,:,i);
end
I have looked at pages on vectorisation, but I can't find any examples that helps me with structs and arrays together. I appreciate help that anyone offers!

采纳的回答

Walter Roberson
Walter Roberson 2011-10-12
movieStructure = struct('cdata', mat2cell(movieMatrix,videoHeight,videoWidth,ones(1,totalFrames)) );

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by