Форумы » Форум для внеигровых тем » Бен! Бен, это Данила. Ай нид хелп!
Cообщение
1
+4
07 Окт 2010
Камрады, владеющие МатЛабом допоможить плиз!

Нужно набросать элементарный М-файл, только вот загвоздка - я МатЛаб последний раз видел года 3 назад, да и тогда то не сильно любил. А МатЛаб нужен, потому что в нем есть отличная функция, написание которой на Си нерационально трудоемко, тем более, что в МатЛабе она уже готова.

Постановка задачи:
Есть 1501 текстовый файл с названиями
time0000.txt
time0002.txt
...
time3000.txt
В них в 3 столбика записаны X, Y, Z.
Нужно эти X, Y и Z считать и запихать в функцию griddata. Результатом будет интерполяция функции Z, по сетке (x,y) с шагом 25 метров. Соответственно получившиеся Z с равномерными координатами нужно записать в другой файл. И так полторы тыщи раз.
#380  ahawk
2
+3
07 Окт 2010
Сашк, ты скажи в чём проблема-то, сам уже давно в матлабе не писал. Имя файла объявляешь как строку, делаешь цикл в котором открываешь файл(fopen), всё что с ним нужно делаешь(читаешь fread), закрываешь, потом 4-8 байты в названии преобразуешь в число (str2int) увеличиваешь на 2, обратно (int2str), склеиваешь и на цикл (for i=1:1500)
3
+4
07 Окт 2010
Проблема в незнании матлаба, на С++ это легко, а матлаба я банально не знаю. Не знаю как открываются файлы (хотя load нормально сработал вроде), но как склеить строки я не нашел. Для человека пользующегося матлабом задача проста, а не знающему приходится тыкаться да читать учебники.
#380  ahawk
4
0
07 Окт 2010
склейка строк strcat(str1,str2)
5
0
07 Окт 2010
Странна, а почему он обматерился, я пробовал стркат. Результат пишется в стр1, функция войд?
#380  ahawk
6
0
07 Окт 2010
не, не void, вот пример:

» sl=['wri ']
s1 =wri
» s2=['ter']
s2 =ter
» t = strcat(sl.s2)
t = writer
7
0
07 Окт 2010
Ага, пасиб.та что такое meshgrid? Распиши доступно
#380  ahawk
8
0
07 Окт 2010
7 эт я пас, мы её не пользовались ,но яндекс выдаёт это:
http://www.exponenta.ru/soft/matlab/potemkin/book2/chapter5/meshgrid.asp

как я понял синтаксис такой:
[X, Y] = meshgrid(minX:deltaX:maxX, minY:deltaY:maxY);
формирует 2 массива X и Y с минимума до максимума с указанным шагом
9
0
07 Окт 2010
как организован доступ к элементам массива-файла?
Я на работе пробовал лоадом файл поднять, он мне высветился как матрица 26620х3. Как ее передать в гриддату?
Статья про гриддату http://matlab.exponenta.ru/ml/book2/chapter8/griddata.php
#380  ahawk
10
0
07 Окт 2010
k = mass(i, j)
вытаскиваем элемент из массива
Тема закрыта TYTAHXAMOH