Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String MATLAB字符串2表的个数_String_Matlab_Numbers - Fatal编程技术网

String MATLAB字符串2表的个数

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

我有一个字符串形式的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]
    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