gpt4 book ai didi

excel - 如果分隔符是;,如何使用 GNU Octave 读取 CSV 文件?

转载 作者:行者123 更新时间:2023-12-04 19:47:41 36 4
gpt4 key购买 nike

我有一个用 Excel 制作的 .csv 文件,Excel 使用 ; 作为分隔符。我不喜欢那样,但我无法改变它。

所以我不得不接受。我想在 GNU Octave 中读取那个 .csv 文件,但我真的做不到,因为 .csv 文件中的 float 用 , 分隔,例如 15,25 而不是用 . 分隔,例如 15.25 因为在 Excel 中,它假设15.25 是一个文本字符串,15,25 是一个数字。是的,我知道,这很奇怪。

如果我将 .csv 文件中的所有 , 更改为 .,那么我可以读取 .csv 使用 dlmreadcsvread 的文件。但在这种情况下,我不想将 , 更改为 .,因为这是标准的 Excel 配置。

所以我的问题是:

如果您有一个 .csv 文件,则 float 显示为 ,。那么,您如何在 GNU Octave 中读取该 .csv 文件?

最佳答案

对于比默认的 matlab 兼容 csvreaddlmread 更灵活的 csv 阅读器,使用 中的 csv2cell 函数io 包。如果您以前没有使用过包,那么您可以这样做:

pkg install io -forge   % install io package if you haven't already
pkg load io % load it

然后使用 csv2cell 将值作为字符串读入单元格(将 ; 声明为所需的分隔符);然后使用 strrep 将字符串中的 , 替换为 .;然后最后使用 str2double 将这些字符串转换为数字。

您可以使用以下单行代码执行此操作:

str2double( strrep( csv2cell( 'testo.csv', ';' ), ',', '.' ) )

你也可以把它包装成一个匿名函数:

read_my_csv = @( myfile ) str2double( strrep( csv2cell( myfile, ';' ), ',', '.' ) );
Data = read_my_csv( 'data.csv' );

附言。应要求添加了企鹅晚礼服以更加完美。

         _nnnn_                      
dGGGGMMb ,"""""""""""""".
@p~qp~~qMb | Linux Rules! |
M|@||@) M| _;..............'
@,----.JM| -'
JS^\__/ qKL
dZP qKRb
dZP qKKb
fZP SMMb
HZM MMMM
FqM MMMM
__| ". |\dS"qML
| `. | `' \Zq
_) \.___.,| .'
\____ )MMMMMM| .'
`-' `--'

(来源:https://www.asciiart.eu/computers/linux)

关于excel - 如果分隔符是;,如何使用 GNU Octave 读取 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72742616/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com