Dimensionality issue with Matlab Function

I thought this should be fairly simple, I really have no idea what went wrong, been trying for a week, gosh!! so ashamed of myself.
I define the following at Workspace: I=[5 5.1 5.2 5.2]; V=[95 80 85 20];
I expect an output like this: at t=0, arr=20, at t=1, arr=30, at t=2, arr=40,
When I run the simulation, what I got is: at t=0, arr=20, 0, 0, 0, at t=1, arr=0, 10, 0, 0, at t=2, arr=0, 0, 10, 0,
There are few problems with this result: 1. I expect only one arr value at a particular time, but it came out four arr values at a time
I wonder why the arr never adds up to 30 and 40 etc My system is as follow: http://imgur.com/nEKDqqS
The codes are here: http://imgur.com/Cipjbyn

6 Comments

i managed to get only one value at a time, but why the arr never adds up to 30 and 40 etc? it keeps detecting that arr(count-1,1) is ALWAYS zero
You should show the code you've written
The MATLAB part of the code does not change "count", so you need to demonstrate that something will be changing "count"
Thanks for your reply,Walter. I enable debugging and I am sure the count did increase from 1 to 2, 3 and so on. However, the integ_signal(count,1) contains very weird value such as 0.3412 etc. I have no idea what went wrong in this simple code
want2know
want2know on 5 Nov 2013
Edited: want2know on 5 Nov 2013
function ar = fcn(signal, V, count)
integ_signal=zeros(4,1); arr=zeros(4,1);
if count<=(length(signal)) if count==1 integ_signal(count,1) = 20; % Initial Condition arr(count,1)= integ_signal(count,1); else integ_signal(count,1) = arr(count-1,1) + 10; arr(count,1)= integ_signal(count,1); end end
ar = arr(count,1);
end
I run the codes in m file without any function, it did gives me correct value, 20, 30,40. but i dont know why when I combine all the blocks in Simulink, the value stays at 10 all the time

Answers (0)

This question is closed.

Asked:

on 4 Nov 2013

Closed:

on 20 Aug 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!