Matlab 数字和字符的合并转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字和字符的合并转换for i=1:5
d=num2str(i);
c=strcat('a',d);
e=eval(c);
b(:,i)=e(:,1);
end
目的是生成文件名a1 a2 a3 a4
d=num2str(i); 先把数字 1 2 3 4转换成字符
c=strcat('a',d); 再把数字和字母a结合起来生成文件名e=eval(c); 再把这个字符转换成可移执行的命令行
如果要把一组数存到另外一组矩阵里,例如
a=[1 2 3
4 5 6
7 8 9]
现在要把这三行数据分别存进3个矩阵,b1,b2,b3
命令如下
eval(strcat( 'b',num2str(i),'=a(i,;);'))
eval里面的东西就等于是直接在命令窗口里面输入的东西
提取rstx文件里面的数据
clear all
num=0;
fidin=fopen('G2000.rstx'); %
fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
[a,b]=size(tline) ;% 确定指针指到的这一行的维数大小
b
if b>8
if double(tline(3))>=48&&double(tline(3))<=57 % 判断首字符是否是数值
fprintf('%%%%%%%%%%%%%%%%%%%%%%%%%%\ n')
num=num+1;
fprintf('********\n');
fprintf(fidout,'%s\n',tline) % 如果是数字行,把此行数据写入文件MKMATLAB.txt
% a(num,:)=tline
x=fidout;
else
end
end
continue % 如果是非数字继续下一次循环
end
fclose(fidout);
MK=textread('MKMATLAB.txt'); % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来
自动读取大批量的数据
clear all
close all
pw=2;
pv=100;
for i=1:1
clear a b c d e f g MK
c1=num2str(i-1);
c2=num2str(pw);
c3=num2str(pv);
c4=strcat('LH_bdn_hd',c1,'_pw',c2,'_G',c3,'.rstx'); % 生成文件名,纯字符
filename=(c4); % 转换成真正的文件名
num=0;
fidin=fopen(filename); 直接读文件,不要加单引号!!!!