MATLAB中如何拆分及修改字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中如何拆分及修改字符串相关的知识,希望对你有一定的参考价值。
一个n*1的矩阵,形式如下:
40071201
40071202
依次类推。
①如何把上述矩阵拆分成2个n*1的矩阵
4007 1201
4007 1202
依次类推
②如何更改某几位数字
如将矩阵改为:
20071201
20071202
依次类推
急用,在线等,最好能附上程序语言,万分感谢!
正则表达式函数regexp的split模式。一般语法:
S = regexp(str, char, 'split')
其中str是待分割的字符串,char是作为分隔符的字符(可以使用正则表达式)。分割出的结果存在S中。
以下面这样一串字符为例
Hello Nocturne Studio首先去除首尾的多余空格:
str = deblank(str)
例1:设这几个字符串是以制表符分隔的,可以这样来做:
S = regexp(str, '\t', 'split')
例2:设这些字符串是以一个或多个空格分隔的,可以用正则表达式来描述:
S = regexp(str, '\s+', 'split')
这样,S(1)=’Hello’,S(2)=’Nocturne’,S(3)=’Studio’。
matlab字符串操作函数
eval(string) 作为一个MATLAB命令求字符串的值
eval(try,catch)blanks(n)返回一个n个零或空格的字符串
deblank去掉字符串中后拖的空格
feval求由字符串给定的函数值
findstr从一个字符串内找出字符串
isletter字母存在时返回真值
isspace空格字符存在时返回真值
isstr输入是一个字符串,返回真值
lasterr返回上一个所产生MATLAB错误的字符串
strcmp字符串相同,返回真值
strrep用一个字符串替换另一个字符串
strtok在一个字符串里找出第一个标记 参考技术A A = [40071201];
A = num2str(A);
A1 = A(1:4)
A2 = A(5:end)
A1(1,1) = '2'
A1 =
4007
A2 =
1201
A1 =
2007
参考技术B 用PutFullMartix和GetFullMatrix完成这种任务。matlab中如何保存数据到指定文件夹中?
假设:
数据矩阵为data
欲保存的文件名不是固定的,以字符串变量filename的内容为文件名,
保存路径为:E:\study\
请问在MATLAB中如何将按以上要求保存数据?
保存方法:
save(['E:\\Study\\', filename], 'data')
MATLAB save 函数用法及实例:
用法一:保存指定变量到当前工作目录
在尝试将A矩阵保存为MAT格式文件,文件名取为example,并且存储起来,方便下次使用。
在matlab主窗口中输入save example A,回车,会看到左侧当前文件夹出现了相应的example,mat文件。
用法二:保存当前所有变量到当前工作目录
此时MATLAB中有A和b两个变量,试图将其全部保存起来。
在MATLAB主窗口中输入save example2 ,将其保存到example2.mat文件中。
用法三:保存指定变量到指定文件夹
试图将以上矩阵A保存到D:\\\\JINGYAN\\\\example.mat中。
在MATLAB主窗口中输入如下命令:save('D:\\\\csdn\\\\example.mat','A') 。
可以看到成功在csdn文件夹下生成了example.mat。
扩展资料:
一、在使用save函数时需要注意:
1、要保存的mat文件要写出后缀。
2、要保存的变量名要用单引号引起来。保存所有变量到指定文件夹不在赘述,用命令save('D:\\\\csdn\\\\example.mat') 便可。
二、SAVE命令动态批量保存mat文件:
已知矩阵A,先将A矩阵的每一列进行拆分,分别保存在‘1-points.mat’、‘、2-points.mat’、‘3-points.mat’中。
A=[
0.7329 -0.0000 19.2805;
-0.0000 0.7329 25.0947]
for i=1:3
chr=[num2str(i),'-points.mat']
b=A(:,i)
save(chr,'b')
end
参考资料来源:百度百科—save函数
参考资料来源:百度百科—mat文件
参考技术A 如果将矩阵写入到excel中,可以使用xlswrtie函数,然后指定你要保存的路径和矩阵即可。如,你想将矩阵 mMatrix保存到D盘Data目录下,可以写成
xlswrite('D:/Data/filename', mMatrix);
当然'D:/Data/filename',你可以使用相对路径。
分享一个我自己写的一个函数,将矩阵写入到txt文件中的函数
function write_file( filename,source_matrix )
%TEST Summary of this function goes here
% write matrix to file
fid=fopen(filename,'a');
[x,y]=size(source_matrix);
for i=1:x
for j=1:y-1
fprintf(fid,'%s\x20',num2str(source_matrix(i,j)));
end
fprintf(fid,'%s\r\n',num2str(source_matrix(i,y)));%每一行回车\n
end
fclose(fid);
end
filename,就是的文件路径和文件名。
source_matrix ,就是你要输出的矩阵。 参考技术B 可能你会用到数字转字符串命令
int2str 转换整数成字符串
num2str转换数成字符串
如,循环结构中:
for i=1:10
A=int2str(i);
save(['E:\Study\', A,'.dat'], 'data')
end 参考技术C save(['E:\Study\', filename], 'data')本回答被提问者采纳
以上是关于MATLAB中如何拆分及修改字符串的主要内容,如果未能解决你的问题,请参考以下文章
matlab创建一个字符串“Iamastudent”将字符串全变成大写字母,拆分截取出 字