热线电话:13121318867

登录
2019-02-19 阅读量: 688
从txt文件中取出符号变量并在Matlab中创建矩阵 问问题

我有一个包含以下字符的txt文件。theta1,l1和其他是符号变量。(不要介意)

M=[theta1 + (l1^2*m1)/4 + l1^2*m2 (l1*l2*m2*cos(fi1 - fi2))/2 ;

(l1*l2*m2*cos(fi1 - fi2))/2 theta2 + (l2^2*m2)/4 ]

我需要将它拿出来并使其成为一个符号矩阵。你可以看到txt文件已经很好用于制作矩阵但是我不想复制粘贴到脚本的全部内容,我宁愿自动完成。

fid = fopen('a.txt');

MMatrix=textscan(fid,'%s');

fclose(fid);

解决办法:不要将其作为字符串或字符数组读取,然后可能使用evil(eval)方法,只需将扩展名重命名为txt,m因为您已经在文本文件中以MATLAB方式定义了数组。如果需要,保留这些原始txt文件的备份副本。

如果它是单个文件(a.txt),您可以手动或使用此代码重命名为a.m:

movefile('a.txt', 'a.m');

如果目录中有多个此类文件,则可以使用以下代码更改当前目录中所有此类txt文件的扩展名:

txtfiles = dir('*.txt'); %getting all txt files in the current directory

for num = 1:numel(txtfiles)

[~, fname] = fileparts(txtfiles(num).name); %filename (without extension)

movefile(txtfiles(num).name, [fname,'.m']); %renaming

end

0.0000
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子