¿Es posible abrir una hoja de trabajo en excel desde matlab y editar las fórmulas? La idea es automatizar un análisis de incertidumbre creando una segunda hoja con la incertidumbre en cada celda para el valor de la celda anterior. Esencialmente, quiero tratar las celdas como variables y hacer SQRT (SUMA (parciales (xi)^2)) para cada celda. Matlab no debería tener problemas con el calc, pero ¿puede editar las fórmulas en hojas?Modificar una hoja de Excel de Matlab
Actualmente, el proceso consiste en copiar y pegar de excel a matlab. He aquí una pequeña función que hace la incertidumbre en Matlab contra el conjunto de ecuaciones:
function [f_u_total f_u] = uncertAnalysis(f, vars, vars_u)
f_u = [];
f_u_total = [];
for(i=1:length(f))
f(i)
item = uncertAnalysisi(f(i), vars, vars_u);
f_u = [f_u; item(1)];
f_u_total = [f_u_total; item(1)];
end
end
function [f_u_total f_u] = uncertAnalysisi(f, vars, vars_u)
f_u = [];
% take the partials and square them
for i=1:length(vars)
f_u = [f_u; vars(i) (diff(f, vars(i)).*vars_u(i)).^2];
end
% calculate the RSS
f_u_total = (sum(f_u(:,2))).^.5;
end
Como acotación al margen, las ecuaciones se ven algo como esto (¿por qué no estoy haciendo esto a mano):
=(9*C!S3^2/C!V3^4*C!W3*(C!O3-
C!P3)/C!X3*C!Q3^6*C!F3^4/C!Y3^6/(C!U3^C!Z3)^6*F3^2+1/4*C!S3^2/C!V3^4*C!W3/(C!O3-
C!P3)/C!X3*C!Q3^6*C!F3^6/C!Y3^6/(C!U3^C!Z3)^6*O3^2+1/4*C!S3^2/C!V3^4*C!W3/(C!O3-
C!P3)/C!X3*C!Q3^6*C!F3^6/C!Y3^6/(C!U3^C!Z3)^6*P3^2+9*C!S3^2/C!V3^4*C!W3*(C!O3-
C!P3)/C!X3*C!Q3^4*C!F3^6/C!Y3^6/(C!U3^C!Z3)^6*Q3^2+1/C!V3^4*C!W3*(C!O3-
C!P3)/C!X3*C!Q3^6*C!F3^6/C!Y3^6/(C!U3^C!Z3)^6*S3^2+9*C!S3^2/C!V3^4*C!W3*(C!O3-
C!P3)/C!X3*C!Q3^6*C!F3^6/C!Y3^6/(C!U3^C!Z3)^6*C!Z3^2/C!U3^2*U3^2+4*C!S3^2/C!V3^6*C!W3*(C!O
3-C!P3)/C!X3*C!Q3^6*C!F3^6/C!Y3^6/(C!U3^C!Z3)^6*V3^2+1/4*C!S3^2/C!V3^4/C!W3*(C!O3-
C!P3)/C!X3*C!Q3^6*C!F3^6/C!Y3^6/(C!U3^C!Z3)^6*W3^2+1/4*C!S3^2/C!V3^4*C!W3*(C!O3-
C!P3)/C!X3^3*C!Q3^6*C!F3^6/C!Y3^6/(C!U3^C!Z3)^6*X3^2+9*C!S3^2/C!V3^4*C!W3*(C!O3-
C!P3)/C!X3*C!Q3^6*C!F3^6/C!Y3^8/(C!U3^C!Z3)^6*Y3^2+9*C!S3^2/C!V3^4*C!W3*(C!O3-
C!P3)/C!X3*C!Q3^6*C!F3^6/C!Y3^6/(C!U3^C!Z3)^6*LOG(C!U3)^2*Z3^2)^(1/2)
tengo que preguntar, ¿por qué está usando Excel para esto en absoluto? No es realmente para el análisis de datos científicos como este. Puede que sea mejor exportar los datos a archivos de texto, importarlos a MATLAB, calcular los resultados, guardarlos como texto e importarlos nuevamente a Excel. –
David, es el "estándar" en nuestro laboratorio (laboratorio de ingeniería mecánica). Estoy de acuerdo, y me gusta mantener las cosas puramente en matlab si puedo. Debo decir sin embargo, Excel tiene sus méritos. Por ejemplo, tener la hoja 'programada' mientras toma datos proporciona algunos cálculos/visualizaciones agradables en tiempo real. – ccook