TYTAHXAMOH |
Камрады, владеющие МатЛабом допоможить плиз!
Нужно набросать элементарный М-файл, только вот загвоздка - я МатЛаб последний раз видел года 3 назад, да и тогда то не сильно любил. А МатЛаб нужен, потому что в нем есть отличная функция, написание которой на Си нерационально трудоемко, тем более, что в МатЛабе она уже готова.
Постановка задачи:
Есть 1501 текстовый файл с названиями
time0000.txt
time0002.txt
...
time3000.txt
В них в 3 столбика записаны X, Y, Z.
Нужно эти X, Y и Z считать и запихать в функцию griddata. Результатом будет интерполяция функции Z, по сетке (x,y) с шагом 25 метров. Соответственно получившиеся Z с равномерными координатами нужно записать в другой файл. И так полторы тыщи раз.
|
ahawk |
Сашк, ты скажи в чём проблема-то, сам уже давно в матлабе не писал. Имя файла объявляешь как строку, делаешь цикл в котором открываешь файл(fopen), всё что с ним нужно делаешь(читаешь fread), закрываешь, потом 4-8 байты в названии преобразуешь в число (str2int) увеличиваешь на 2, обратно (int2str), склеиваешь и на цикл (for i=1:1500)
|
TYTAHXAMOH |
Проблема в незнании матлаба, на С++ это легко, а матлаба я банально не знаю. Не знаю как открываются файлы (хотя load нормально сработал вроде), но как склеить строки я не нашел. Для человека пользующегося матлабом задача проста, а не знающему приходится тыкаться да читать учебники.
|
ahawk |
склейка строк strcat(str1,str2)
|
TYTAHXAMOH |
Странна, а почему он обматерился, я пробовал стркат. Результат пишется в стр1, функция войд?
|
ahawk |
не, не void, вот пример:
» sl=['wri ']
s1 =wri
» s2=['ter']
s2 =ter
» t = strcat(sl.s2)
t = writer
|
TYTAHXAMOH |
Ага, пасиб.та что такое meshgrid? Распиши доступно
|
ahawk |
7 эт я пас, мы её не пользовались ,но яндекс выдаёт это:
http://www.exponenta.ru/soft/matlab/potemkin/book2/chapter5/meshgrid.asp
как я понял синтаксис такой:
[X, Y] = meshgrid(minX:deltaX:maxX, minY:deltaY:maxY);
формирует 2 массива X и Y с минимума до максимума с указанным шагом
|
TYTAHXAMOH |
как организован доступ к элементам массива-файла?
Я на работе пробовал лоадом файл поднять, он мне высветился как матрица 26620х3. Как ее передать в гриддату?
Статья про гриддату http://matlab.exponenta.ru/ml/book2/chapter8/griddata.php
|
ahawk |
k = mass(i, j)
вытаскиваем элемент из массива
|
Тема закрыта TYTAHXAMOH |