主题:请教高手: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); //不运行上面语句,单独运行此句,报错.
我先定义了一个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); //不运行上面语句,单独运行此句,报错.