seperating integer values using if block in simulink
2 Ansichten (letzte 30 Tage)
I have integers [1 2 3 5 6 7 8 9 10] and function f(x) and g(x), I specified those ingeters in a constant block labled x. In the command window I specified x=[1 2 3 4 5 6 7 8 9 10]. another variable y is specified as 5 in the command window, y=5. For integers x=>5 function f(x) is computed and for integers x<5 function g(x) is computed. I used the if block to perform this condition. when i run the simulation this error comes up.
Error in port widths or dimensions. Output port 1 of 'model/constant,x2' is a one dimensional vector with 10 elements.
i think the if block could not take all the values at the same time.
how do i go about this? is there any other way to do this?
thank you. your guidance is very much appreciated.
Raju Purohit am 4 Nov. 2012
I cannot be sure unless you post your model but I think the problem arising in your model is by this: in the block parameters of "If block" under "If expression", you have used u1 >= 5 (ie., x >= 5) which is incorrect. x is a vector with the order 1x10, while on the right hand side is 5 which is a 1x1 integer. MATLAB cannot compare the two dimensionally mismatching variables.
Instead, you need to use u1(i) >= 5, where i can be anywhere between 1 and 10, in which case u1(i) will be a 1x1 variable and can be compared to 5.
Hope this helps.