Compare arrays in Simulink

I have two arrays which I would like to compare with each other.
eg. A = [4.1,5.2,7.1] B = [1,2,3,4,5,6,7,8]
I want to be able to say that the following match 4.1->4, 5.2->5, 7.1->7 and then show it in a different array like C = [0,0,0,1,1,1,0]
I have been trying to use For loops but havent managed to solve it as yet. Any suggestions would be useful
*edit
I cannot use a Matlab function block as I need to use it with TargetLink later.
Thanks, Dhruv

5 个评论

What with a value of 5.8? Is this then equal to 6 or still to 5? Basically what kind of rounding do you apply?
I actually need to be able to provide the range for the categorizing myself as they keep changing. I dont need something to round the values.
eg. A = [4.1,5.2,7.1]
Here,
*edit
0.0 < A <= 2.3 --- 1
2.3 < A <= 2.5 --- 2
2.5 < A <= 4.2 --- 3
4.2 < A <= 5.4 --- 4
5.4 < A <= 8.0 --- 5
This is not clear? what is 0-2.3 ?
Friedrich
Friedrich 2013-8-14
编辑:Friedrich 2013-8-14
I guess thats the range. Values between 0 and 2.3 are mapped to 1 and so. However its not clear what hapens with values equal to 2.3. Are those values mapped to 1 or 2?
I have edited my comment to remove the confusion

请先登录,再进行评论。

回答(2 个)

A = [4.1,5.2,7.1];
B = [1,2,3,45,6,7,8];
out=zeros(size(B));
out(fix(A))=1

10 个评论

I need to do this in Simulink without using any Matlab function blocks.
You have to explain, What are A and B? from constant blocks, or from what?
the arrays can be assumed to be from Constant blocks
PS. I have made a comment to the question to explain it better
Dhruv: This kind of problem seems more suited to MATLAB than Simulink - is there a reason you are opposed to using the MATLAB Function block? Note that you CAN generate C/C++ code from this block.
Friedrich
Friedrich 2013-8-14
编辑:Friedrich 2013-8-14
@Kaustubha: AFAIK Dhruv is using TargetLink later which does not support the MATLAB Function block for code generation.
The simulink coder support the Matlab function block. some matlab function are not supported, but there is a way to do it without those functions.
Friedrich
Friedrich 2013-8-14
编辑:Friedrich 2013-8-14
Yes, SL Coder can handle MATLAB function blocks, but not TargetLink ;)
AFAIK TargetLink has its own block called "Custom Code block" which uses selfwritten C file. I guess implementing this in C is a way easier and faster (not in executing it, but faster in implementing that logic) than doing it in Simulink. Would that be an option for you?
In that way you could also write MATLAB code for that task, use the MATLAB Coder to generate C code from the MATLAB code and then use that C code in the custom code block.
Yes, I am actually working with something similar to TargetLink called Intecrio. Sadly, I dont even have have a 'Custom Code Block' available to me.
Bottomline, I need to do this using Simulink. Any help is appreciated.
Is a Look-Up-Table supported? If so, this would be what you need together with a For Itterator Subystem.
I have the possibility of using a Matlab embedded block inside a Stateflow chart.. though I have never used Stateflow.. could you think of it as a possibility to be used in such a case?

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Simulink Functions 的更多信息

产品

提问:

2013-8-14

Community Treasure Hunt

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

Start Hunting!

Translated by