Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中的嵌套函数_Matlab - Fatal编程技术网

matlab中的嵌套函数

matlab中的嵌套函数,matlab,Matlab,我有一个方法,使用的是内部方法,每个方法都可以独立工作,但是当一个方法内部使用时,就会出现错误 function [cov]=CC(a,b) meana=mean(a); meanb=mean(b); entity=0; for k=1:10 entity=entity+((a(1,k)-meana) * (b(1,k)-meanb)); end cov=entity; 工作正常,但如果在该方

我有一个方法,使用的是内部方法,每个方法都可以独立工作,但是当一个方法内部使用时,就会出现错误

  function [cov]=CC(a,b)

      meana=mean(a);
      meanb=mean(b);
      entity=0;

      for k=1:10
          entity=entity+((a(1,k)-meana) * (b(1,k)-meanb));
      end

      cov=entity;
工作正常,但如果在该方法中使用,则会出现以下错误:

???试图访问b(1,10);索引超出范围,因为大小(b)=[1,9]。
错误==>9时抄送
entity=entity+((a(1,k)-meana)*(b(1,k)-meanab))
8处==>CM的错误
e=CC(dim(1,i:10),dim(1,j:10))

功能
CM
如下所示

function [covM]=CM(a,b)

    dim=[a b];

    for i=1:2
        for j=1:2
            e=CC(dim(1,i:10),dim(1,j:10));
        end
    end

   covM=e;
那么,这条语句是什么呢?试图访问b(10);由于numel(b)=9“

什么意思
b
[1,10]
不是
[1,9]

原始变量“b”是1x10,但在以下行中:

e=CC(dim(1,i:10),dim(1,j:10));
实际上,您调用函数CC,它获取两个变量,并将它们再次视为
a
b
,但现在它们不同了:

dim(1,i:10)
现在(在
CC
内部)被称为
a

dim(1,j:10)
现在(在
CC
内部)被称为
b


由于循环,当j=2时,
dim(1,j:10)
是1x9,因此变量
b
CC
函数中。这就是错误的原因。

错误是明确的。b是[1,9]向量。因此,无法访问索引10。此外,发生错误的原因是您正在使用循环索引减少
CC(dim(…
行)中dim数组的大小