nrep = 2000; dims = [2000, 2, 20300]; fi = foo; fi.data_s = zeros(dims, 'single'); fi.data_d = zeros(dims, 'double'); data_s = zeros(dims, 'single'); data_d = zeros(dims, 'single'); dat_set = rand(dims(1), dims(2)); tic; for i = 1 : min(nrep, dims(3)) data_d(:, :, i) = dat_set; end fprintf('Time for assign to double precision array: %g\n', toc); tic; for i = 1 : min(nrep, dims(3)) data_s(:, :, i) = dat_set; end fprintf('Time for assign to single precision array: %g\n', toc); tic; for i = 1 : min(nrep, dims(3)) foo.data_d(:, :, i) = dat_set; end fprintf('Time for assign to double precision property: %g\n', toc); tic; for i = 1 : min(nrep, dims(3)) foo.data_s(:, :, i) = dat_set; end fprintf('Time for assign to single precision property: %g\n', toc);