Archive for the 'MATLAB' Category

Открыть .mat файл в Python

Задача: открыть файл сохранённый в формате .mat и содержащий несколько переменных в Питоне
Инструменты: Matlab, scipy.io, numpy

Если матлабовский код уже написан, то смысла особого переделывать его на python нет (если, конечно вы не ярый фанат Столлмана, или у вас просто нет матлаба). Но бывают случаи когда результаты работы матлабовских скриптов (в том числе и промежуточные) хочется использовать в питоновских сценариях. Сохраняя результаты в .mat файлах вы без проблем (ну почти) сможете открыть их питоном.

Под катом необходимые телодвижения.
Read more »

Вставляем нули перед цифрами, Python

Задача: написать функцию которая переводит целое число в строку определённого размера, содержащую это целое число и нули.

То есть:
5 >> 00005
123 >> 00123

Инструменты: Python, модули os, sys

UPD: Пост, конечно, смешной, потому как всё что я здесь расписываю в Питоне решается на раз без написания всяких функций. Смотри коменты. Продолжать читать имеет смысл только если хочется узнать зачем же нам решать такую задачу :) Ещё можно добавить в коменты свой вариант решения, не только на питоне :)

Сразу скажу что я абсолютно уверен что эта задача решается в питоне какой ни будь встроенной функцией, и буду благодарен, если кто ни будь мне на неё укажет. Мне же, к сожалению, ничего раскопать не удалось. Ещё больше я уверен в том что это делает и какой-нибудь awk в одну строчку, но мне нужна была питоновская функция.

Для чего это нужно? Сделано это было для чтения модельных файлов, у которых имена определяются именно таким образом, но потом оказалось полезным и для создания gif файлов из ps при помощи convert (чтоб сортировало по порядку). Хотя ещё позже обнаружилось что gif файлы прекрасно создаются и без этого :))). Оба примера я приведу. Также приведу оригинальную функцию для MATLAB, которая делает то же самое.

Объяснений много не будет, потому что объяснять там особо нечего )

Сам скрипт:
Read more »

Вырезание полигона из данных

Задача - вырезать район из матрицы данных.

В наличии - матрица с данными и две матрицы такого же размера что и матрица с данными, в одной находятся широты в другой долготы.

Инструменты - Matlab и GoogleEarth

Чтобы не отрываться от реальности, скажу что данные - это концентрация льда по SSM/I , NASA Team алгоритм. Решение грязное, медленное и нудное, правильного и красивого мне найти пока не удалось )
Read more »

Скопировать колонку несколько раз в Matlab

Если у вас есть колонка с данными и вам нужно сделать матрицу в которой была бы куча таких колонок, то есть клонировать их, то есть размножить, ну или как там ещё назвать... можно сделать следующее

dd = a(:,ones(1,n))

Где

a - изначальная одинокая колонка

n - количество колонок которое вам надо получить в итоге.

Есть ещё функция repmat но она медленней )

Открываем .hdf в Matlab

Мне попались файлы продвинутого формата hdf и нужно было как то открыть имеющиеся в них данные. С самим форматом мы разберёмся как нить в другой раз, наша задача добыть матрицу n*m.

В отличии от netCDF, поддержка HDF в матлабе присутствует родная и никаких телодвижений чтобы заставить его с форматом работать не требуется. А требуется только знать две команды.

Read more »