String MATLAB字符串2表的个数
我有一个字符串形式的3年数据String MATLAB字符串2表的个数,string,matlab,numbers,String,Matlab,Numbers,我有一个字符串形式的3年数据tableformat.txt。其三行如下所示: 12-13 Jan -10.5 14-15 Jan -9.992 15-16 Jan -8 如何将字符串的第三列(-10.5、-9.992和-8)更改为(-10.500、-9.992和-8.000)的数字 我制作了以下脚本: clear all; clc; filename='tableformat.txt'; fid = fopen(filename); N = 3; for i = [1:N] li
tableformat.txt
。其三行如下所示:
12-13 Jan -10.5
14-15 Jan -9.992
15-16 Jan -8
如何将字符串的第三列(-10.5
、-9.992
和-8
)更改为(-10.500
、-9.992
和-8.000
)的数字
我制作了以下脚本:
clear all; clc;
filename='tableformat.txt';
fid = fopen(filename);
N = 3;
for i = [1:N]
line = fgetl(fid)
a = line(10:12);
na = str2num(a);
ma(i) = na;
end
ma
其中:
ma = -1 -9 -8
当我做这个改变时:a=line(10:15)代码>,我得到:
错误消息:索引超出了矩阵维度
这对你有用
clear all;
clc;
filename='tableformat.txt';
filename2='tableformat2.txt';
fid = fopen(filename);
fid2 = fopen(filename2,'w');
formatSpec = '%s %s %6.4f\n';
N = 3;
for row = [1:N]
line = fgetl(fid);
a = strsplit(line,' ');
a{3}=cellfun(@str2num,a(3));
fprintf(fid2, formatSpec,a{1,:});
end
fclose(fid);
fclose(fid2);
这对你有用
clear all;
clc;
filename='tableformat.txt';
filename2='tableformat2.txt';
fid = fopen(filename);
fid2 = fopen(filename2,'w');
formatSpec = '%s %s %6.4f\n';
N = 3;
for row = [1:N]
line = fgetl(fid);
a = strsplit(line,' ');
a{3}=cellfun(@str2num,a(3));
fprintf(fid2, formatSpec,a{1,:});
end
fclose(fid);
fclose(fid2);
假设您的表有以下列:Year、Month和Val。T=table(Year、Month、Val);可以按如下方式转换列的数据类型:T.Val=str2double(T.Val);根据上述脚本na=str2num(a);如果我更改na=str2double(a),结果不会更改,仍然是ma=-1-9-8而不是-10.500、-9.992和-8.000假设您的表有以下列:年、月和值。T=table(年、月、值);可以按如下方式转换列的数据类型:T.Val=str2double(T.Val);根据上述脚本na=str2num(a);如果我改变na=str2double(a),结果不变,仍然是ma=-1-9-8而不是-10.500,-9.992和-8.000