Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/34: Рейтинг темы: голосов - 34, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 6

Импорт данных из Mathcad в Matlab

12.02.2016, 10:53. Показов 7113. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите разобраться. Из Mathcad экспортированы данные в формате для Matlab.
В Matlab загрузив файл в рабочую область (Файл/Импорт данных...) получаю данные в нормальном формате. Когда же делаю это программно:
Matlab M
1
2
3
4
5
6
7
8
9
10
clc;
fid = fopen('Y.dat', 'rb');     % открытие файла на чтение 
if fid == -1                     % проверка корректности открытия 
    error('File is not opened'); 
end 
  
B = fread(fid, 5, 'double');     % чтение 5 значений double 
disp(B);                         % отображение на экране 
fclose(fid);                     % закрытие файла
disp(Y);
получаю не понятно, что:
1 2 3 4 5 6 7 - это чтение из рабочей области, disp(Y);
а это disp(B);
1.0e-152 *

0.1501
0.0000
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.02.2016, 10:53
Ответы с готовыми решениями:

Импорт данных из Excel в Matlab (edit text)
Здравствуйте. Не могли бы вы мне помочь с такой проблемой? Я создал в Matlabe форму с семью редактируемыми текстовыми полями и двумя...

Импорт данных в matlab из excel в реальном времени
Excel открыт в него постоянно поступают данные, заполняя столбцы сверху вниз. Как мне эти данные оперативно импортировать в матлаб?...

Из mathcad в Matlab
Здравствуйте, ооочень нужна помощь, есть программка в маткаде с функцией rkadapt(), которая решает систему диффуравнений методом...

5
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
12.02.2016, 11:15
Команда fread читает данные из файлов в бинарном формате, в Вашем случае из файла считывается 5*8=40 байт и интерпретируется как 5 чисел double.
Однако при попытке импорта данных в MATLAB, вижу информацию на картинке, что наводит на мысль, что данные в Вашем файле (а он считывается данной командой) в текстовом виде.
Попробуйте открыть Ваш файл программой БЛОКНОТ, если увидите осмысленную информацию, то формат данных текстовый.
1
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
12.02.2016, 11:57
А картинку то и забыл
Изображения
 
0
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 6
12.02.2016, 18:48  [ТС]
Спасибо, уважаемый SSC, за ответ.
В моем примере, действительно, данные были строкового типа. Это – от моих экспериментов, т.к.не получалось с числами типа float и я вручную ввел целые
Вот новый эксперимент. После экспорта из Matcad 61 значений создался файk YYY.mat. Бинарный. Изменил программку- читаю значения из файла и записываю в переменную В, значение которой затем вывожу на экран
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clc;
fid = fopen('YYY.mat', 'rb');  % открытие файла на чтение 
if fid == -1 
    error('File is not opened'); 
end 
  
B=0;                % инициализация переменной 
cnt=1;              % инициализация счетчика 
while ~feof(fid)    % цикл, пока не достигнут конец файла 
    [V,N] = fread(fid, 1, 'double');  %считывание одного 
% значения double (V содержит значение 
% элемента, N – число считанных элементов) 
    if N > 0        % если элемент был прочитан успешно, то 
        B(cnt)=V;   % формируем вектор-строку из значений V 
        cnt=cnt+1;  % увеличиваем счетчик на 1 
    end 
end 
disp(B);            % отображение результата на экран 
fclose(fid);        % закрытие файла
Выводится 0.0000 0.0000 .... -0.0000 и т.д.
Когда вручную импортирую данные из файла в рабочую область - ОК.
0.0000
0.1111
0.3743
......
2.9437
.....
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
15.02.2016, 07:43
Ваши предположения, что в файле формата mat данные типа double распологаются последовательно с начала файла неверны. В начале файла имеется служебная область в которой указана версия MATLAB которой писался файл (следовательно очень вероятно что для разных версий формат файла будет различный, причем различной может быть и сама служебная область), в служебной области имеются данные по размеру массива выводимому в файл.
Если у Вас есть опыт разборки форматов бинарных файлов, этим можно заниматься, если такошо опыта нет - вернитесь к текстовому формату, в нем организовать чтение гораздо проще (хотя и размер файлов значительно больше и время обработки больших массивов значительно больше)
1
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 6
18.02.2016, 13:08  [ТС]
Спасибо, уважаемый SSC, за ответ. Сейчас отвлечен другими заботами, когда появится время воспользуюсь Вашими рекомендациями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.02.2016, 13:08
Помогаю со студенческими работами здесь

Из mathCAD в matlab
Здравствуйте! Есть вот такое выражение в маткаде: Пытаюсь сделать в матлабе, но не выходит: t = -20:10:30; r = ; r =...

Из MathCad в MatLab
Здравствуйте! Пытаюсь функцию MathCad переделать в Matlab,но что-то не выходит. Не могли бы Вы подсказать,что не так? function D =...

импорт из matlab в MsWord
здравствуйте. есть ли возможность читать из matlab текстовые документы doc, созданные в micrasoft word?

Интерполяция (MathCad to Matlab)
Здравствуйте, Уважаемые форумчане! Подскажите, пожалуйста, как данная запись (интерполяции) будет выглядеть в матлабе? Вот...

Портирование из Mathcad в Matlab
Ребят, кто-нибудь может, пожалуйста, конвертировать программу(во вложении) в матлаб из маткада?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru