Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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_Function_Simulink_Dimension - Fatal编程技术网

Matlab函数的维数问题

Matlab函数的维数问题,matlab,function,simulink,dimension,Matlab,Function,Simulink,Dimension,我认为这应该是相当简单的,我真的不知道出了什么问题,已经尝试了一个星期,天哪!!我真为自己感到羞耻 我在工作区中定义了以下内容: I = [5 5.1 5.2 5.2]; V = [95 80 85 20]; 我希望得到如下输出: %// at t=0 arr=20 %// at t=1 arr=30 %// at t=2 arr=40 当我运行模拟时,我得到的是: %// at t=0 arr = 20, 0, 0, 0 %// at t=1 arr = 0, 10, 0,

我认为这应该是相当简单的,我真的不知道出了什么问题,已经尝试了一个星期,天哪!!我真为自己感到羞耻

我在工作区中定义了以下内容:

I = [5 5.1 5.2 5.2];
V = [95 80 85 20];
我希望得到如下输出:

%// at t=0
arr=20

%// at t=1    
arr=30

%// at t=2
arr=40
当我运行模拟时,我得到的是:

%// at t=0
arr = 20, 0, 0, 0

%// at t=1
arr = 0, 10, 0, 0

%// at t=2
arr = 0, 0, 10, 0
这一结果几乎没有问题:

  • 我期望在特定时间只有一个
    arr
    值,但一次会有四个
    arr

  • 我想知道为什么
    arr
    加起来总是不等于30和40等等

  • 我的系统如下:

    代码如下:


    我一次只能得到一个值,但为什么arr的总和从来没有达到30和40等?它不断检测到arr(计数-1,1)在最后的
    结束
    之前始终为零

    scalar_value = arr(count,1);
    
    并声明您的函数为

    [arr, scalar_value] = fcn(signal,V,count)
    

    这将在4x1向量
    arr
    中获得感兴趣的值(标量值),而不会中断
    arr
    逻辑。

    arr=zeros(4,1)将arr设置为数组。然后更改其中的一个值,因此它返回一个数组长度4,其中一个值已更改。感谢Simon,如果我定义arr=zeros(1,1)而不是arr=zeros(4,1),那么当当前值位于arr(2,1)中时,如何检索arr(1,1)值?@user2563812:请描述函数的预期输出,我不知道你对单个输出值的期望是什么。嗨,Daniel R,我期望这样:%//at t=0 arr=20%//at t=1 arr=30%//at t=2 arr=40我一次只能得到一个值,但为什么arr加起来总是30和40等等?它不断检测到arr(count-1,1)始终为零感谢Macduff,我尝试了你的方法,它最终在特定时间给了我一个值。介意解释一下为什么需要覆盖标量吗?现在,我得到了这个输出:%//在t=0时,arr=20%//在t=1时,arr=10%//在t=2时,arr=10。我可以知道,为什么arr的总和永远不会达到30和40等?请参阅我的编辑。不需要覆盖-您可以声明第二个输出作为感兴趣的标量。感谢Macduff的解释。我一次只能得到一个值,但为什么arr的总和从来没有达到30和40等?它不断检测到arr(计数-1,1)始终为零。您可能希望在函数中插入
    disp(计数)
    以查看计数是否增加,以及
    disp(arr)
    以查看arr的演变。感谢您的回复,我启用了调试,我确信计数确实从1增加到了2、3等等。然而,integ_信号(count,1)包含非常奇怪的值,如0.3412等。我不知道这个简单代码中出现了什么错误