Здравствуйте, уважаемые форумчане! Третий день бьюсь над решением проблемы, и никак не получается ее решить.
Суть такова: необходимо построить сетку, и провести процесс коррекции (но это сейчас не столь принципиально). Проблема заключается в следующем: кривые, которые образуют сетку задаются с помощью вызова функции CoordTransform, она работает таким образом, что на выходе возвращает 6 параметров, каждый вызов этой функции дает при каждом фиксированной координате, кривую, например, вызов функции Tr1_0(i,:)=CoordTransform(q1,0); позволяет строить кривую изменяющейся с определенным шагом по координате q1, но для постоянной q2 - const (нулю в данном случае). Аналогично и с функцией Tr2_0(i,:)=CoordTransform(0,q2).
Одна кривая горизонтальная, вторая - вертикальная, если говорить наиболее просто. В результате необходимо построить, получить сетку.
Если проводить вызов вручную, т.е прописывать каждый раз вызов CoordTransform и передавать в нее значения самому прописывать, 0,1..5, то в принципе это нормально, но когда надо строить сетку от 0 до 10 с шагом например 0,01, то вручную это делать уже тяжело.
Если раскоментировать содержимое файла coord_curves3.m то эту сетку можно построить, в этом случае, для каждой траектории Tr1_(:,1),Tr1_(:,2) выводить первый и второй столбец, аналогично и для Tr2_(:,1),Tr2_(:,2), тогда получаем такую картинку:
Мне нужно автоматизировать процесс построения такой сетки, чтобы не вручную вызывать и передавать параметр для построения трека (кривой), а просто некоторым циклом, чтобы в одном массиве были треки Tr1_i а в другом Tr2_i, и т.е каждый вызов функции построения кривой, можно было вызывать несколько раз и в зависимости от переданной из диапазона q=const, т.е передаем в качестве константы q2 с шагом 0 : .05 :10, и соответсвенно каждый раз происходит вызов
Tr1[i](i,:) = CoordTransform(q1,q2);
т.е надо организовать вызов функций таким образом, чтобы все эти Tr1_i и Tr2_i не приходилось прописывать вручную, как это в файле скрипта...
Для это я написал automate_Tr1() и automate_Tr2(), в них передаю значения q - const для каждой кривой, т.е сначала кривая Tr1(q1,q2 - const), где const последовательно при каждом вызове пробегает значения 0 : .05 :10 к примеру. И пытаюсь организовать вызов для записи в массив каждого трека, чтобы потом с помощью цикла построить такую сетку:
for i=2:Nc
plot(Tr1(i,:,1),Tr1(i,:,2),Tr2(i,:,1),Tr2(i,:,2))
end
Однако, при вызове
for qq2 = 0:.05:10
Ts = automate_Tr1(qq2);
end
просто все время получаю только значение для кривой, когда в нее передан последний элемент диапазона переменной qq2.
Уже почти 3 дня я пытаюсь это сделать и никак не могу понять, что я делаю не так, какой строчки кода не хватает, может я неправильно организую индексацию, в чем может быть проблема??
Я просто уже не знаю, что делать... Буду благодарен, за оказанную помощь! Все файлы в архиве, доступные по ссылке:
https://drive.google.com/file/d/1j8t4dmOpPI4eMZDP46ePtudKhBMR2tyi/view?usp=sharing