поиск ошибок и загрузка файла в октаве - PullRequest
1 голос
/ 16 июня 2020

Я попытался преобразовать свой файл .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

1 Ответ

1 голос
/ 16 июня 2020

Хорошо, здесь вы наткнулись на целую кучу проблем.

Было бы полезно, если бы вы не отправляли нам сообщения об ошибках без команд, которые их создали.

Первое сообщение означает, что вы приказываете 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 преобразовал нечисловую информацию заголовка c в «нули». В справке для csvread и dlmread показано, как изменить его на значение, отличное от нуля, или пропустить определенное количество строк. если вы хотите сохранить текст, вам придется использовать другую функцию ввода.

...