回 帖 发 新 帖 刷新版面

主题:请教高手:matlab 子函数调用出错,求助

请教高手:
我先定义了一个DC()函数,在函数内调用fenge(C,N)函数,fenge函数的目的是将长度为N的字符串C分割为两个子串, [SP,SS] = fengedc(C,N);前半部分存在SP,后半部分存在SS.但是调用DC函数是报错:
The expression to the left of the equals sign is not a valid target for an assignment.意思是 [SP,SS]不能为左值.
但是,当我不调用DC函数,直接在主函数内调用[SP,SS] = fengedc(C,N);时却能够正常运行.这是为什么?请高人指点.
我的源代码如下:


 function R=DC(C,N)

   if zifushu>1
    {
    
     [SP,SS] = fengedc(C,N);

    }

end
 C1='SAKPQPIAAANWKCNGTTASIEKLVQVFNEHTISHDVQCVVAPTFVHIPLVQAKLRNPKYVISAENAIAKSGAFTGEVSMPILKDIGVHWVILGHSERRTYYGETDEIVAQKVSEACKQGFMVIACIGETLQQREANQTAKVVLSQTSAIAAKLTKDAWNQVVLAYEPVWAIGTGKVATPEQAQEVHLLLRKWVSENIGTDVAAKLRILYGGSVNAANAATLYAKPDINGFLVGGASLKPEFRDIIDATR'
C2='ARTFFVGGNFKLNGSKQSIKEIVERLNTASIPENVEVVICPPATYLDYSVSLVKKPQVTVGAQNAYLKASGAFTGENSVDQIKDVGAKWVILGHSERRSYFHEDDKFIADKTKFALGQGVGVILCIGETLEEKKAGKTLDVVERQLNAVLEEVKDWTNVVVAYEPVWAIGTGLAATPEDAQDIHASIRKFLASKLGDKAASELRILYGGSANGSNAVTFKDKADVDGFLVGGASLKPEFVDIINSRN'
C3='APSRKFFVGGNWKMNGRKQSLGELIGTLNAAKVPADTEVVCAPPTAYIDFARQKLDPKIAVAAQNCYKVTNGAFTGEISPGMIKDCGATWVVLGHSERRHVFGESDELIGQKVAHALAEGLGVIACIGEKLDEREAGITEKVVFEQTKVIADNVKDWSKVVLAYEPVWAIGTGKTATPQQAQEVHEKLRGWLKSNVSDAVAQSTRIIYGGSVTGATCKELASQPDVDGFLVGGASLKPEFVDIINAKQ'
C4='SKPQPIAAANWKCNGSQQSLSELIDLFNSTSINHDVQCVVASTFVHLAMTKERLSHPKFVIAAQNAGNADALASLKDFGVNWIVLGHSERRAYYGETNEIVADKVAAAVASGFMVIACIGETLQERESGRTAVVVLTQIAAIAKKLKKADWAKVVIAYEPVWAIGTGKVATPQQAQEAHALIRSWVSSKIGADVAGELRILYGGSVNGKNARTLYQQRDVNGFLVGGASLKPEFVDIIKATQ'
C5='MRHPLVMGNWKLNGSRHMVHELVSNLRKELAGVAGCAVAIAPPEMYIDMAKREAEGSHIMLGAQNVDLNLSGAFTGETSAAMLKDIGAQYIIIGHSERRTYHKESDELIAKKFAVLKEQGLTPVLCIGETEAENEAGKTEEVCARQIDAVLKTQGAAAFEGAVIAYEPVWAIGTGKSATPAQAQAVHKFIRDHIAKVDANIAEQVIIQYGGSVNASNAAELFAQHDVDGFLVGGASLKPEFVDIINAAEAAKQA'
N=5; %N条序列

C{1}=C1;%构建元胞矩阵
C{2}=C2;
C{3}=C3;
C{4}=C4;
C{5}=C5;
SP=C;
SS=C;
%  [SP,SS] = fengedc(C,N);    //单独运行这句,不运行下面的DC(C,N)时正常;
 DC( C,N);            //不运行上面语句,单独运行此句,报错.

回复列表 (共1个回复)

沙发

function R=DC(C,N)

   if zifushu>1
    {
    
     [SP,SS] = fengedc(C,N);

    }

end
 你的DC函数返回值应该是SP和 SS才对吧
R是什么呢  你要返回什么?
我建议你改成这样试试,看行不行:


function [SP,SS]=DC(C,N)

   if zifushu>1
    {
    
     [SP,SS] = fengedc(C,N);

    }

end

我来回复

您尚未登录,请登录后再回复。点此登录或注册