필터 지우기
필터 지우기

Simulink Enumeration

조회 수: 3 (최근 30일)
B. J.
B. J. 2011년 10월 21일
Hello,
I am trying to do a simple multiport switch. My control is a numeric value.
If 1 is selected, I want my output to be 'Red'. If 2, I want 'Yellow', ect.
I have tried creating a class object for Colors. (thinking this isn't helping)
classdef Colors
properties
R = 0;
G = 0;
B = 0;
end
methods
function c = Colors(r,g,b)
c.R = r; c.G = g; c.B = b;
end
end
enumeration
Red(1, 0, 0)
Orange(1, .5, 0)
Yellow(1, 1, 0)
Green(0, 1, 0)
Blue(0, 0, 1)
Indigo(.2, 0, .8)
Violet(1, 0, 1)
end
end
thus, when I type Colors.Red, I get Red as my output.I used the Enumerated Constant, of output Colors and value Colors.Red. I get error "Initialization commands cannot be evaluated."
Any help would be great, my end goal is to pass a value out of "Red","Yellow"..ect. If I do this as a char or enumerated state I don't care.
thanks.

답변 (2개)

Fangjun Jiang
Fangjun Jiang 2011년 10월 21일
  댓글 수: 2
B. J.
B. J. 2011년 10월 21일
This what what I used to create my class Colors, but I'm having trouble calling it from that point. I cannot seem to pull out "orange" for example. I get constructor errors saying "colors constructor
a = Colors(1, .5, 0)
??? Error using ==> Colors
Cannot call the constructor of 'Colors' outside of its enumeration block.
Fangjun Jiang
Fangjun Jiang 2011년 10월 21일
Should you use a=Colors.Orange? Then you can check a.R, a.G and a.B

댓글을 달려면 로그인하십시오.


Kaustubha Govind
Kaustubha Govind 2011년 10월 24일
I don't think you can use this kind of enumerated class in Simulink. Simulink enumerated types need to inherit from Simulink.IntEnumType. See Defining Simulink Enumerations.

카테고리

Help CenterFile Exchange에서 String에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by