Я пытаюсь сделать цикл, как описано ниже в программировании Matlab. Ему нравится исследование двух деревьев.
Задача 1:
Я создаю функцию с двумя входными переменными и выводу с четырьмя переменными.
From originCoord (x, y, z) создает две новые координаты R (x, y, z), L (x, y, z);(R означает справа, L: слева)
следующий R (x, y, z) -> новые R1 (x1, y1, z1) & L1 (x1, y1, z1) и L (x, y, z) -> новый L2 (x2, y2, z2) & R2 (x2, y2, z2)
, после чего продолжение .....
цикл остановится, когда один изnewCcoordinates () == targetCoordinates (xtarget, ytarget).
%from initial 3D point (x y z) using treeExploreation fuction to create two
%new3D points with coordinates (x1,y1,z1) and (x2,y2,z2)
%then from these new point, using this function two create new four 3D_Points...
%x y z are scala
rightPoint = [x1,y1,z1];
leftPoint = [x2,y2,z2];
targetPoint = [xtarget, ytarget, ztarget];
%store twop 3D points into coordExplore
coordExplore = [rightPoint,leftPoint];
temp = [];
flag = 0;
while (~flag)
for i=1:length(coordExplore)
[newrightPoint,newleftPoint]=treeExploration(coordExplore(i)); %help me at here !!!!
%this function with input (x,y,z) output two new coordinates i.e.
% newrightPoint(x3,y3,z3) and newleftPoint(x4,y4,z4)
if (newrightPoint==targetPoint) || (newleftPoint==targetPoint)
%this condition is to compare the output coordinates whether the same as
%the targetPoint
flag=1;
break;
else
temp =[newrightPoint,newleftPoint];
end
end
coordExplore = temp;
temp = [];
end
Я застрял, когда вывод всегда больше, чем ввод. Я не могу использовать все выходные данные для следующего цикла. Пожалуйста, помогите мне прокомментировать, как сделать цикл для этого случая. Спасибо.
Обновлены проблемы :
* Я хотел бы ordExplore (1) = rightPoint (x1 y1 z1)
иordinExplore (2) = leftPoint(x2 y2 z2)
НО с индексом i = 1 ,ordinExplore (1) = x1;i = 2 - >ordinExplore (2) = y1;
Я использую цикл сordinExplore (i), чтобы работать от точки к точке, в каждой точке есть свои координаты (xyz). Как я могу это сделать? *
Проблема 2: когда один из newCcoordinates () == targetCoordinates (xtarget, ytarget), как я могу узнать, какие вариабельные значения в каком направлении от исходного цикла допоследний цикл, генерирующий результат? (например, какие марки дерева достигают цели). В C ++ я могу использовать стек для сохранения, но в Matlab я не знаю, как сохранить переменную для каждого цикла.