Я только что начал свое путешествие с Octave - у меня есть огромные файлы данных, с которыми мне приходится иметь дело.Получить правильные значения средних строк матрицы
Я использую версию Octav на 3.8.2 для Cygwin64 и 3.8.2-3. Неофициальный GNU Octave для Windows - моя проблема появляется на обоих, поэтому я предполагаю, что это моя ошибка, а не ошибка.
Поскольку я не очень хорошо разбираюсь в этой программе, у меня возникла проблема с моими данными.
Так вот, как это выглядит.
Каждый файл моих данных содержит структуру, называемую datastr.
Это то, что он печатает после
>> whos
Variables in the current scope:
Attr Name Size Bytes Class
==== ==== ==== ===== =====
datastr 1x1 38084576 struct
Total is 1 element using 38084576 bytes
После печати полей в структуре, я получил это:
>>struct_levels_to_print(0)
>>datastr
scalar structure containing the fields:
t0: 1x1 scalar
chanCount: 1x1 scalar
chanLabels: 1x7 cell
fs: 1x1 scalar
calibr: 1x7 matrix
data: 7x1360160 float matrix
Что меня интересует, есть данные, матрица с плавающей точкой, содержащий 7 строк, каждый из которых имеет 1360160 столбцов.
Это как две первые строки выглядят (только семь колонки отвечали, я вышел после этого)
>>struct_levels_to_print(1)
>>datastr
Columns 1 through 7:
3.9899e+004 4.3311e+004 4.6618e+004 4.6773e+004 4.2841e+004 4.0228e+004 3.5909e+004
2.8070e+004 2.2204e+004 1.5375e+004 9.6730e+003 -8.2862e+004 -7.9456e+004 -7.6144e+004
Я извлек матрицу из структуры и добавили его в переменный:
>> MyData = datastr.data
переменной MyData является одним классом
>> whos
Variables in the current scope:
Attr Name Size Bytes Class
==== ==== ==== ===== =====
MyData 7x1360160 38084480 single
datastr 1x1 38084576 struct
Затем я меняю формат на длинный (и да, у меня есть tr IED НЕ изменяя формат, конечный результат будет тот же)
>> format long
>> MyData
Это то, что случилось с первых двух строк после этого хода (MyData еще одного):
39899 43311 46618 46773 42841 40228 35909
28070 22204 15375 96730 -82862 -79456 -76144
Это не правильные данные (точки и научная нотация исчезли) - это те же цифры, но не одни и те же данные. Я думаю, что это проблема, но есть еще кое-что.
То, что я хочу сделать, - это получить значение для каждой строки, отдельно. Это означает, что в конечном итоге у меня должно быть 7 отдельных средств, каждый для одного ряда данных.
Я искал в Интернете и получил это: я должен ввести
>> M1 = mean(MyData,2)
, который должен получить меня среднее из каждой строки в моей флоат матрице.
Однако результаты не совсем то, что я был после:
M1 =
-91349216
-91482784
Это средние значения для 2-х первых рядов. Это неверно (я вручную скопировал данные первой строки в Excel и проверил ее).
Медиана печатает аналогичные, неправильные значения.
Самое смешное, что когда я не использую >> длинного формата кода, Октав показывает правильные значения (с точками и научными «е»), но результат значит все еще не так.
Там нет пустых «клетки» в этой матрице
Я не был в состоянии найти ответ в интернете (в основном потому, что я не знаю, какой вопрос я должен спросить)
Может вам скажи мне, что я делаю неправильно? Что мне следует вводить, чтобы получить результат, который я ищу?
Заранее благодарю вас за поддержку.
EDIT: Я добавил все строки кода (не очень кодирования, действительно), которые я использую. Данные настоящие данные (только сокращенные, так как я не хочу размещать столбцы 1360160)
EDIT2: Вот ссылка на один из моих файлов. http://we.tl/mL6agFvssQ Я выбрал файл с данными, представленными выше, и положил его на WeTransfer. Возможно, есть еще одна вещь, которую я просто не знаю.
Вы действительно должны добавить свой исходный код (как вы «переменная MyData - это один класс») и попытаться создать некоторые искусственные данные, которые вы можете включить здесь, и показать проблему. Думаю, вы в какой-то момент преобразуете свои данные в целые числа. – Andy
Хорошо, спасибо. Я создам некоторые данные, похожие на оригинальные, и буду отправлять коды, результаты и т. Д. – Karsch
Хорошо, я отредактировал все коды. Теперь он показывает шаг за шагом, что я делаю с этими данными. Я больше ничего не делаю, так как я не могу понять, что эти строки в матрице будут настолько простыми, даже для начинающих. Как я ошибался ... – Karsch