![]() |
从Matlab修改Excel工作表
是否可以通过Matlab在excel中打开工作表并编辑公式?这个想法是通过创建第二张表格来自动化不确定性分析,该表格包含每个单元格中前一个单元格的值的不确定性。本质上,我想将单元格视为变量,并对每个单元格执行SQRT(SUM(Partials(xi)^ 2))。 Matlab的计算应该没有问题,但是可以在工作表中编辑公式吗?
当前的过程是从excel复制并粘贴到matlab。这是一个小函数,可针对矩阵方程组在matlab中进行不确定性处理: 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 顺便说一句,等式看起来像这样(为什么我不手工这样做): =(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) 回答: 您应该能够通过COM / ActiveX / Automation执行此操作。查看“ [URL="http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/brd05nl.html"]外部接口”[/URL]文档;有一个示例,说明如何通过Excel的自动化界面访问Excel文档。 我几乎没有以这种方式操作Excel的经验,但是我知道您可以通过自动化在Excel中几乎完成任何操作,并且编辑单元格公式听起来并不那么困难。 编辑:我找不到对Excel对象模型的引用,但这是另一个示例: [URL="http://support.microsoft.com/kb/301982"]http[/URL] : [URL="http://support.microsoft.com/kb/301982"]//support.microsoft.com/kb/301982[/URL] [url=https://stackoverflow.com/questions/579006]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 23:21。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.