gusucode.com > 三维模仿源码程序 > 三维模仿源码程序/MathRubik2/hist2string.m
function s=hist2string(in) %hist2string - Convert history to string % s=hist2string(hAxes); % if hAxes not given, an axes is searched % takes the data from the axes' userdata % s=hist2string(Cube); % takes the data from the Cubes history % s=hist2string(history); % uses directly the array of the same type as the history % % surfaces : F (Axe=1, Side=1), R (2,1), U (3,1), % B (1,-1), L (2,-1), D (3,-1) % are used. Surfs='DLB FRU'; if nargin<1 h=FindRubikAxes; Cube=get(h,'UserData'); H=Cube.history; elseif isstruct(in) H=in.history; else H=in; end if isempty(H) s=''; return end s=char(zeros(1,size(H,1)+sum(H(:,3)<0))); iS=0; for i=1:size(H,1) iS=iS+1; s(iS)=Surfs(H(i,1)*H(i,2)+4); if H(i,3)<0 iS=iS+1; s(iS)=''''; elseif i>1&s(iS)==s(iS-1) s(iS)='2'; elseif H(i,3)>1 iS=iS+1; s(iS)=num2str(H(i,3)); end end