主函數
% movenum表示移動次數
% scheme移動方案的矩陣,一行表示一次移動的方式
% disknum表示移動盤子的號數
% a盤子一開始的柱子
% b中間柱
% c目標柱
function [movenum,system]=hanoi(disknum,a,b,c)
global HANOI  %設全域變數
HANOI=[];%設置為空矩陣
temphanoi(disknum,a,b,c);
movenum=size(HANOI,1);%取得行數,即為移動次數
system=HANOI;


副函數
function temphanoi(disknum,a,b,c)
global HANOI%設為全域變數 
if disknum==1%移動方式
     HANOI=[ HANOI;1,a,c];
else
    temphanoi(disknum-1,a,c,b);
   %把最後一片移到目標柱上
     HANOI=[HANOI;disknum,a,c];
    %把中間當第一根柱子, 原來的第一根當中間柱, 繼續移動
    temphanoi(disknum-1,b,a,c);
end


命令列
clc
clear
syms a b c h m
[n,s]=hanoi(3,a,b,c)
h=zeros(3,3);             %  建立3*3的零矩陣
h(:,1)=(1:3)';  
m=3;
a=h(:,1)
b=h(:,2)
c=h(:,3)
[a b c]

我寫到這裡時該如何把s的那個矩陣放進[a b c]裡?
我試過for i=1:n
          s(i,:)
       end
但要如何把一行一行的搬移過程代入[a b c]
拜託高手指點一下.....感激不進呀!!