Si la matriz es un array de structs (lo que en MATLAB se suele llamar "struct array", tamaño 814x1 donde cada elemento tiene sus propios campos), no necesitas ningún bucle para sacar cada variable como vector. MATLAB permite extraer un campo de todos los elementos del struct array de golpe usando la notación de punto seguida de corchetes:
temperatura = [datos.temperatura]; % vector 1x814 con todas las temperaturas
presion = [datos.presion]; % vector 1x814 con todas las presiones
Esto funciona porque datos.temperatura (sin corchetes) genera una "comma-separated list" con el valor de ese campo en cada elemento del struct array, y los corchetes [ ] los concatenan automáticamente en un vector. Es el equivalente vectorizado de hacer:
temperatura = zeros(1, length(datos));
for i = 1:length(datos)
temperatura(i) = datos(i).temperatura;
end
pero sin el bucle, y bastante más rápido para 814 elementos. Un detalle importante: esto solo funciona directo si cada campo contiene un escalar. Si datos(i).temperatura fuera a su vez un vector de tamaño variable entre elementos, la concatenación con [ ] puede dar un vector con una forma que no esperas, y ahí sí conviene usar arrayfun con 'UniformOutput', false para quedarte con un cell array en vez de intentar concatenar directamente.
Sara