Rumäniens Städte Breitensuche mit matlab
Ich arbeite an einem Projekt, das sich auf rumänische Städte bezieht. Breitensuche:
Ich habe eine Funktion zum Erstellen der Nachbarn:
function [NeighborName PathLength StraightLineDistance] = makeneighbor(x,y,z)
NeighborName=x;
PathLength=y; % distance from current city to neighbor
StraightLineDistance=z; % i want to use it for a* model
und in meiner 'main.m' habe ich Stadt * und Nachbarn definiert:
clc;clear;
city1='Arad'
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Zerind',75,374)
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Sibiu',140,253)
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Timisoara',118,329)
city2='Zerind'
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Oradea',71,380)
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Arad',75,366)
.
.
.
city20='Neamt'
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Iasi',87,226)
jede Zeit vergleicht die Stadt mit Bukarest
if city*=='bucharest'
break;
else
list= add the city to list.
Für das nächste Mal muss ich seinen Nachbarn mit dem Ziel vergleichen und jedes Mal, wenn city ~ = 'bucharest', diese Stadt zur Liste hinzufügen. Wenn Sie das Ziel gefunden haben, fügen Sie es der Liste hinzu.
Jetzt brauche ich eine Funktion, um Bukarest zu finden und frühere Städte in ein Array zu setzen. Finden Sie automatisch Städte und deren Werte. so was
path1=['arad' 'sibiu' 'fagaras' 'bucharest'];
distance1=[140 99 211];
path2=['arad' 'zerind' 'oradea' 'sibiu' 'fagaras' 'bucharest'];
distance2=[75 71 151 99 211];
path3=['arad' 'zerind' 'oradea' 'sibiu' 'vilcea' 'pitesti' 'bucharest'];
distance3=[75 71 151 80 97 101];
.
.
pathN=[city1:cityN 'bucharest'];
distanceN=[distance1:distanceN]
disp('please explain very simple. im not so expert in matlab, and my primary language is not english. many thanx...')