从 PCE-VDL 数据记录器设备导入 OCTAVE 数据并将小数点转换为小数点
OCTAVE data import from PCE-VDL data logger device and conversion of decimal coma to decimal point
我有一个测量设备 PCE-VDL,它以下面的 CSV 格式提供测量结果,我需要将其导入 OCTAVE 以进行进一步调查。
特别是我需要导入带有 xyz 加速数据的最后 3 列。
文件为 CSV 格式,以分号“;”分隔。
我试过:
A_1 = importdata ("file.csv", ";", 3);
但已经收到
error: missing_idx(10): out of bound 9
CSV 文件如下所示:
@PCE-VDL X - TableView series
@2020.16.11
@Date;Time;Duration [s];t [°C];RH [%];p [mbar];aX [g];aY [g];aZ [g];
2020.28.10;16:16:32:0000;00:000;;;;0,0195;-0,0547;1,0039;
2020.28.10;16:16:32:0052;00:005;;;;0,0898;-0,0273;0,8789;
2020.28.10;16:16:32:0104;00:010;;;;0,0977;-0,0313;0,9336;
2020.28.10;16:16:32:0157;00:015;;;;0,1016;-0,0273;0,9297;
最后 3 列中的数字也有小数点逗号而不是小数点。所以可能也应该做一些转换。
非常感谢您的帮助。
问候
编辑:2020 年 11 月 18 日
感谢帮助。我现在尝试了以下内容:
A_1_str = fileread ("file.csv");
A_1_str_m = strrep (A_1_str, ".", "-");
A_1_str_m = strrep (A_1_str_m, ",", ".");
save "A_1_str_m.csv" A_1_str_m;
A_1 = importdata ("A_1_str_m.csv", ";", 8);
并且仍然收到错误:file_content(140):超出范围 139
第一列的时间格式可能有问题,我不想看。我只需要最后三列。
转换后,文件如下所示:
# Created by Octave 5.1.0, Wed Nov 18 21:40:52 2020 CET <zdenek@ASUS-F5V>
# name: A_1_str_m
# type: sq_string
# elements: 1
# length: 7849
@PCE-VDL X - TableView series
@2020-16-11
@Date;Time;Duration [s];t [°C];RH [%];p [mbar];aX [g];aY [g];aZ [g];
2020-28-10;16:16:32:0000;00:000;;;;0.0195;-0.0547;1.0039;
2020-28-10;16:16:32:0052;00:005;;;;0.0898;-0.0273;0.8789;
2020-28-10;16:16:32:0104;00:010;;;;0.0977;-0.0313;0.9336;
感谢支持!
你可以先用fileread
读取数据,它将数据存储为字符串。然后你可以像这样操作字符串:
new_string = strrep(string, ",", ".");
strrep
替换字符串中出现的所有模式。之后,您将此数据另存为一个单独的文件,或者用处理过的数据覆盖现有文件。完成此操作后,您可以按照之前尝试的方式继续操作。
编辑:2020 年 11 月 19 日
为了避免在新文件中出现额外的标题行,您可以这样保存:
fid = fopen("A_1_str_m.csv", "w");
fputs(fid, A_1_str_m);
fclose(fid);
fputs
只会将字符串写入文件。
您可以使用 dlmread
读取新文件。
A1_buf = dlmread("A_1_str_m.csv", ";");
A1_buf = real(A1); # get the real value of the complex number
A1_buf(1:3, :) = []; # remove the headlines
A1 = A1_buf(:, end-3:end-1); # get only the the 3 columns you're looking for
这将为您提供所需的三列。但日期和时间数据将被忽略。
编辑 2020 年 11 月 20 日
将 abs
替换为 real
,因此将保留值的符号。
使用 io
包中的 csv2cell
。
我有一个测量设备 PCE-VDL,它以下面的 CSV 格式提供测量结果,我需要将其导入 OCTAVE 以进行进一步调查。
特别是我需要导入带有 xyz 加速数据的最后 3 列。 文件为 CSV 格式,以分号“;”分隔。
我试过:
A_1 = importdata ("file.csv", ";", 3);
但已经收到
error: missing_idx(10): out of bound 9
CSV 文件如下所示:
@PCE-VDL X - TableView series
@2020.16.11
@Date;Time;Duration [s];t [°C];RH [%];p [mbar];aX [g];aY [g];aZ [g];
2020.28.10;16:16:32:0000;00:000;;;;0,0195;-0,0547;1,0039;
2020.28.10;16:16:32:0052;00:005;;;;0,0898;-0,0273;0,8789;
2020.28.10;16:16:32:0104;00:010;;;;0,0977;-0,0313;0,9336;
2020.28.10;16:16:32:0157;00:015;;;;0,1016;-0,0273;0,9297;
最后 3 列中的数字也有小数点逗号而不是小数点。所以可能也应该做一些转换。
非常感谢您的帮助。 问候
编辑:2020 年 11 月 18 日 感谢帮助。我现在尝试了以下内容:
A_1_str = fileread ("file.csv");
A_1_str_m = strrep (A_1_str, ".", "-");
A_1_str_m = strrep (A_1_str_m, ",", ".");
save "A_1_str_m.csv" A_1_str_m;
A_1 = importdata ("A_1_str_m.csv", ";", 8);
并且仍然收到错误:file_content(140):超出范围 139
第一列的时间格式可能有问题,我不想看。我只需要最后三列。 转换后,文件如下所示:
# Created by Octave 5.1.0, Wed Nov 18 21:40:52 2020 CET <zdenek@ASUS-F5V>
# name: A_1_str_m
# type: sq_string
# elements: 1
# length: 7849
@PCE-VDL X - TableView series
@2020-16-11
@Date;Time;Duration [s];t [°C];RH [%];p [mbar];aX [g];aY [g];aZ [g];
2020-28-10;16:16:32:0000;00:000;;;;0.0195;-0.0547;1.0039;
2020-28-10;16:16:32:0052;00:005;;;;0.0898;-0.0273;0.8789;
2020-28-10;16:16:32:0104;00:010;;;;0.0977;-0.0313;0.9336;
感谢支持!
你可以先用fileread
读取数据,它将数据存储为字符串。然后你可以像这样操作字符串:
new_string = strrep(string, ",", ".");
strrep
替换字符串中出现的所有模式。之后,您将此数据另存为一个单独的文件,或者用处理过的数据覆盖现有文件。完成此操作后,您可以按照之前尝试的方式继续操作。
编辑:2020 年 11 月 19 日
为了避免在新文件中出现额外的标题行,您可以这样保存:
fid = fopen("A_1_str_m.csv", "w");
fputs(fid, A_1_str_m);
fclose(fid);
fputs
只会将字符串写入文件。
您可以使用 dlmread
读取新文件。
A1_buf = dlmread("A_1_str_m.csv", ";");
A1_buf = real(A1); # get the real value of the complex number
A1_buf(1:3, :) = []; # remove the headlines
A1 = A1_buf(:, end-3:end-1); # get only the the 3 columns you're looking for
这将为您提供所需的三列。但日期和时间数据将被忽略。
编辑 2020 年 11 月 20 日
将 abs
替换为 real
,因此将保留值的符号。
使用 io
包中的 csv2cell
。