find_location.m

来自「一个matlab的将军模型」· M 代码 · 共 49 行

M
49
字号
function [next_location,destination_location] = find_location(srcloc,destination,transition_index)
%
% 	Syntax:
%   "next_location = find_location(srcloc,destination,transition_index)"
%
% Description:
% 	Given a source location, src_loc,  and a destination number in 
% 	GLOBAL_PIHA.Locations{src_loc}.transitions{transition}.destination, 
%	returns the destination location number. If the location is terminal,
%	returns empty.
%
%	inputs:
%
%   * "srcloc": a location number. 
%
%	 * "destination": number of the StateFlow state that changed from one
%		 one location to another.
%
%	 * "transition_index": index referring to the transition whose guard was enabled
%		 by the reachable set. 
%
                
	destination_location=[];
    global GLOBAL_PIHA
    next_loc_q = GLOBAL_PIHA.Locations{srcloc}.q;
	
         
   %Find destination location number
  	transition_struc = GLOBAL_PIHA.Locations{srcloc}.transitions;
   for count_index =1: length(transition_struc{transition_index}.idx)
       next_loc_q(transition_struc{transition_index}.idx(count_index)) = transition_struc{transition_index}.destination(count_index);
   end
   % temp=setdiff(GLOBAL_PIHA.Locations{srcloc}.q,transition_struc{transition_index}.source);
   destination_temp=next_loc_q;%[temp transition_struc{transition_index}.destination];
   next_location=[];
   
   for i=1:length(GLOBAL_PIHA.Locations)
      
     	if all(GLOBAL_PIHA.Locations{i}.q ==destination_temp)
         next_location=i;
         break;
      end
   end
   if isempty(next_location)
      destination_location = destination_temp;
   end
   return
            

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?