1

我想成为:

arr(2,1) = arr(2,1) + abs(5.0 minus 5.1);% where I(1,a) is 5.0 and I(1,a+1)is 5.1

为什么我不能将以下两个加在一起?我收到此错误消息:

下标分配维度不匹配(大小 [1 x 1] ~= 大小 [1 x :?])。

函数 'MATLAB 函数' (#620.435.485),第 23 行,第 2 列:“arr(count,1) = arr(count,1) + abs(I(1,a)-I(1,a+1) )" 启动诊断报告。

'I' 在工作空间中声明为:

I =

 5.0000    5.1000    5.2000    5.2000
90.0000   85.0000   80.0000   20.0000


integ_signal=zeros(5,4);
a=zeros(10);
arr=zeros(5,4);
count=2;
a=1;
integ_signal(count,1)=  integ_signal(count-1,1);
 arr(count,1) = integ_signal(count,1); 
arr(count,1) = arr(count,1) + abs(I(1,a)-I(1,a+1));

该系统显示在这里。完整代码如下:

 function integ_signal= fcn(I,V,count,oldval)

 integ_signal=zeros(5,1);
 a=zeros(10);
 arr=zeros(2,4);
 %b=zeros(10);
 integ_signal=oldval; 
 coder.extrinsic('load');
 load('data.mat','I');
 a=1;
 %b=1;
 if count==1
     integ_signal(count,1) = 10; % Initial Condition
 end

 if count>1

  integ_signal(count,1)=  integ_signal(count-1,1);
  arr(count,1) = integ_signal(count,1);
  arr(count,1) = arr(count,1) + abs(I(1,a)-I(1,a+1));

  end
 a=a+1;
 % b++;
 end

亲爱的先生,我一直收到这个错误,我想要的输出是得到 abs(I(2,ii(a))-I(2,ii(a)-1) 以便当 ii(a)=2 时,我想要I(2,2) 减去 I(2,1) 即 5.1 减去 5.0:索引表达式超出范围。尝试访问元素 2。有效范围是 1-1。“2”。在这一行:arr(1 ,ii(a)) = arr(1,ii(a)) + abs(I(2,ii(a))-I(2,ii(a)-1));。

我在 .mat 文件中将 I 定义为以下内容:

保存数据 -v7.3 'I' load('data.mat','I'); 我 =

第 1 至 6 列

     0    1.0000    2.0000    3.0000    4.0000    5.0000
5.0000    5.1000    5.2000    5.2000    5.5000    5.9000

第 7 栏

6.0000
6.0000
4

1 回答 1

2

我猜您将代码count称为向量。此外,您似乎缺少一个循环。(如果不是,为什么a = a + 1?)

a = zeros(10);

其次是

a = 1;

没有多大意义。你的输入变量是I什么?你想做load('data.mat','I')什么?

如果我是正确的,请尝试以下操作:

for ii = 1:length(count)
    if count(ii) == 1
       integ_signal(count(ii),1) = 10; % Initial Condition
    end

    if count(ii) > 1
       integ_signal(count(ii),1)=  integ_signal(count(ii)-1,1); % Or, (count(ii-1),1)
       arr(count(ii),1) = integ_signal(count(ii),1);
       arr(count(ii),1) = arr(count(ii),1) + abs(I(1,a)-I(1,a+1));
    end
    a = a + 1;
end

您可能需要以某种方式对此进行调整,但我认为它可能会对您有所帮助。

于 2013-11-07T09:50:10.553 回答