octave - 在八度音程中查找和上传文件时出错
问题描述
我尝试将我的 .csv 文件转换为 .dat 格式并尝试将文件加载到 Octave 中。它抛出一个错误:
unable to find file filename
我还尝试使用语法以 .csv 格式加载文件
x = csvread(filename)
它抛出错误:
'filename' undefined near line 1 column 13.
我还尝试通过在编辑器上打开文件来加载文件,我尝试加载它,现在它显示了我
warning: load: 'filepath' found by searching load path
error: load: unable to determine file format of 'Salary_Data.dat'.
如何加载我的数据?
>> load Salary_Data.dat
error: load: unable to find file Salary_Data.dat
>> Salary_Data
error: 'Salary_Data' undefined near line 1 column 1
>> Salary_Data
error: 'Salary_Data' undefined near line 1 column 1
>> Salary_Data
error: 'Salary_Data' undefined near line 1 column 1
>> x = csvread(Salary_Data)
error: 'Salary_Data' undefined near line 1 column 13
>> x = csvread(Salary_Data.csv)
error: 'Salary_Data' undefined near line 1 column 13
>> load Salary_Data.dat
warning: load: 'C:/Users/vaith/Desktop\Salary_Data.dat' found by searching load path
error: load: unable to determine file format of 'Salary_Data.dat'
>> load Salary_Data.csv
warning: load: 'C:/Users/vaith/Desktop\Salary_Data.csv' found by searching load path
error: load: unable to determine file format of 'Salary_Data.csv'
Salary_Data.csv
YearsExperience,Salary
1.1,39343.00
1.3,46205.00
1.5,37731.00
2.0,43525.00
2.2,39891.00
2.9,56642.00
3.0,60150.00
3.2,54445.00
3.2,64445.00
3.7,57189.00
3.9,63218.00
4.0,55794.00
4.0,56957.00
4.1,57081.00
4.5,61111.00
4.9,67938.00
5.1,66029.00
5.3,83088.00
5.9,81363.00
6.0,93940.00
6.8,91738.00
7.1,98273.00
7.9,101302.00
8.2,113812.00
8.7,109431.00
9.0,105582.00
9.5,116969.00
9.6,112635.00
10.3,122391.00
10.5,121872.00
解决方案
好的,您在这里偶然发现了一大堆问题。
如果您在没有生成错误消息的命令的情况下不向我们提供错误消息,那将会有所帮助。
第一条消息意味着您告诉 Octave 打开一个名为filename的东西,但它找不到任何名为filename的东西。你定义了变量文件名吗?您的第二个命令和错误消息表明您没有。
你知道八度工作目录是什么吗?它与文件所在的位置相同吗?从对您的加载命令的响应来看,我猜不是。该文件位于 C:/Users/vaith/Desktop。Octave 的工作目录可能在其他地方。
(试试这个pwd
命令,看看它告诉你什么。使用文件浏览器或cd
命令导航到与文件相同的位置。)
用作命令 ( load file.txt
) 的加载命令可以接受定义为或未定义为字符串的输入。函数格式(load('file.txt')
或csvread('file.txt')
)必须是字符串输入。因此,您所有的 csvread 输入命令都认为您给它的是变量名,而不是文件名。
最后,load 无法读取您的数据这一事实并不过分令人惊讶。它试图猜测它是什么类型的文件以及如何加载它。我假设您尝试help load
查看不同的命令选项是什么?你可以给它不同的选项来帮助它弄清楚。如果它实际上是一个 csv 文件,并且所有数字都不是文本,那么csvread
如果您正确使用它,它可能仍然是您的最佳选择。 help csvread
首先对你来说是个好信息。
看起来您的标题行可能会混淆加载命令。对于简单格式化的数据,csvread 命令将引入数据。它将用零替换您的标题文本。
所以,首先,导航到文件的位置:
>> cd C:/Users/vaith/Desktop
然后打开文件:
>> mydata = csvread('Salary_Data.csv')
mydata =
0.00000 0.00000
1.10000 39343.00000
1.30000 46205.00000
1.50000 37731.00000
2.00000 43525.00000
...
如果您打算重用文件名,可以将其分配给变量,然后打开文件:
>> myfile = 'Salary_Data.csv'
myfile = Salary_Data.csv
>> mydata = csvread(myfile)
mydata =
0.00000 0.00000
1.10000 39343.00000
1.30000 46205.00000
1.50000 37731.00000
2.00000 43525.00000
...
注意文件名是如何存储和用作带引号的字符串的,但变量名不是。此外,csvread
将非数字标头信息转换为“零”。帮助csvread
并向dlmread
您展示如何将其更改为零以外的值,或跳过一定数量的行。如果要保留文本,则必须使用其他输入功能。
推荐阅读
- php - 试图遍历我的 json 中的所有对象以在 php 中获取所有的 amount_refunded
- javascript - 查找拨动开关的状态
- python - 从列表到数据框列
- sql - 如何按时间戳列的日期部分对行进行分组?
- react-native - 如何在 React Native 应用程序中使用 Redux RTK 访问状态
- powerbi - 计算 YTD 但另一列中缺少一些过滤器
- javascript - JS 为什么我的异步函数返回未定义?
- aws-iot - AWS DUPLICATE_CLIENT_ID
- r - R 漩涡课程和谷歌表格
- python - 在 0.25 到 1.3 版本之间使用 any() 更改 Pandas 变换函数