Matlab数字和字符的合并转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab数字和字符的合并转换
数字和字符的合并转换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); 直接读⽂件,不要加单引号。