有没有办法将MATLAB变量转储为相应文字初始值设定项的源代码? IOW,我正在寻找一些函数x
,例如:
>> A = zeros(2);
>> x(A)
ans =
[0 0; 0 0]
>> class(x(A))
ans =
char
是否有这样的功能或简单的方法来达到同样的效果? (我意识到某些MATLAB项目可能不存在文字初始值设定项;对于这些项目,问题本质上是无法解决的。)
我知道MATLAB提供了许多将数据保存到文件的方法,但我发现的方法都没有产生MATLAB 源代码,这就是我所追求的。 / p>
答案 0 :(得分:3)
对于简单的数值(可能还有char数组,我忘了 - 这完全来自内存和文档,我现在没有MATLAB的副本),MAT2STR函数可以满足您的需求。
例如,(来自MATLAB文档):
考虑矩阵
x = [3.85 2.91; 7.74 8.99] x = 3.8500 2.9100 7.7400 8.9900 声明
A = mat2str(x) 产生
A = [3.85 2.91; 7.74 8.99] 其中A是一个包含21个字符的字符串,包括方括号,空格和分号。
此外,将字符串'class'作为第二个参数传递,确保答案将是正确的数字类型。
请参阅the MATLAB documentation for MAT2STR或运行
doc mat2str
在MATLAB中,了解更多信息。
答案 1 :(得分:2)
我知道你正在寻找能够做到这一点的功能,而不是一个交互式程序,但是对于其他想要手动执行此操作的人来说......
MATLAB变量编辑器/查看器具有内置的代码生成功能。在编辑器中打开变量,单击保存图标,然后选择MATLAB Script(* .m)文件类型(默认为.mat):
生成的MatrixCode.m:
% -------------------------------------------------------------------
% Generated by MATLAB on 3-Mar-2014 17:35:49
% MATLAB version: 8.3.0.73043 (R2014a)
% -------------------------------------------------------------------
M = ...
[16 2 3 13;
5 11 10 8;
9 7 6 12;
4 14 15 1];
也许拥有Java和逆向工程技能的人可以从命令行中找出如何调用此GUI操作。