fplot
기호 표현식 또는 기호 함수 플로팅
구문
설명
fplot(
는 구간 f
,[xmin xmax]
)[xmin xmax]
에 f
를 플로팅합니다.
fplot(
는 지정된 범위 xt
,yt
,[tmin tmax]
)[tmin tmax]
에 xt = x(t)
와 yt = y(t)
를 플로팅합니다.
fplot(___,
는 하나 이상의 Name=Value
)Name=Value
인수를 사용하여 line 속성을 지정합니다. 이 옵션은 위에 열거된 구문의 입력 인수 조합과 함께 사용합니다. Name=Value
설정이 플로팅된 모든 선에 적용됩니다. 각 선에 대해 옵션을 설정하려면 fplot
에서 반환된 객체를 사용하십시오.
fplot(
는 현재 좌표축 ax
,___)gca
대신 ax
로 지정된 좌표축에 플로팅됩니다.
은 플롯 유형에 따라 function line 객체 또는 parameterized line 객체를 반환합니다. 이러한 객체를 사용하여 특정 line 객체의 속성을 쿼리하고 수정할 수 있습니다. 자세한 내용은 FunctionLine 속성과 ParameterizedFunctionLine 속성을 참조하십시오.fp
= fplot(___)
예제
디폴트 범위 [-5 5]
에 tan(x)
를 플로팅합니다. fplot
은 기본적으로 극점을 표시합니다. 자세한 내용은 이름-값 인수 항목에서 ShowPoles
인수를 참조하십시오.
syms x
fplot(tan(x))
플로팅 구간을 fplot
의 두 번째 입력값으로 지정하여 [-pi/2 pi/2]
에 sin(x)
를 플로팅합니다.
syms x
fplot(sin(x),[-pi/2 pi/2])
입력값을 벡터로 전달하거나 hold on
을 사용해 동일한 Figure에 계속 플로팅하여 여러 개의 선을 플로팅할 수 있습니다. LineSpec
및 이름-값 인수를 지정하면 모든 선에 적용됩니다. 개별 플롯에 대한 옵션을 설정하려면 fplot
에서 반환된 함수 핸들을 사용하십시오.
subplot
을 사용하여 Figure를 두 개의 서브플롯으로 나눕니다. 첫 번째 서브플롯에서 벡터 입력값을 사용하여 sin(x)
와 cos(x)
를 플로팅합니다. 두 번째 서브플롯에서 hold on
을 사용하여 sin(x)
와 cos(x)
를 플로팅합니다.
syms x tiledlayout(2,1) nexttile fplot([sin(x) cos(x)]) title("Multiple Lines Using Vector Inputs") nexttile fplot(sin(x)) hold on fplot(cos(x)) title("Multiple Lines Using hold on Command") hold off
각 선 사이에 위상 변위를 적용하여 세 개의 사인 곡선을 플로팅합니다. 첫 번째 선에 대해 linewidth 2
를 사용합니다. 두 번째의 경우 원 마커가 있는 빨간색 파선 스타일을 지정합니다. 세 번째의 경우 별표 마커가 있는 녹청색 일점 쇄선 스타일을 지정합니다. 범례를 표시합니다.
syms x fplot(sin(x+pi/5),Linewidth=2) hold on fplot(sin(x-pi/5),"--or") fplot(sin(x),"-.*c") legend(Location="best") hold off
MeshDensity
옵션을 사용하여 플롯의 해상도를 제어합니다. MeshDensity
값을 키우면 더욱 부드럽고 정확한 플롯을 만들 수 있으며 줄이면 플로팅 속도를 높일 수 있습니다.
subplot
을 사용하여 Figure를 두 개로 나눕니다. 첫 번째 서브플롯에서 x = 2.1
부터 x = 2.15
까지의 계단 함수를 플로팅합니다. 플롯의 해상도가 너무 낮아 계단 함수를 감지할 수 없습니다. 두 번째 서브플롯에서 MeshDensity
를 39
로 늘려서 이 문제를 해결합니다. MeshDensity
를 늘려 플롯의 해상도를 향상시켰으므로 이제 플롯에서 계단 함수를 감지하고 이를 표시합니다.
syms x stepFn = rectangularPulse(2.1, 2.15, x); subplot(2,1,1) fplot(stepFn); title("Default MeshDensity = 23") subplot(2,1,2) fplot(stepFn,MeshDensity=39); title("Increased MeshDensity = 39")
sin(x)
를 플로팅합니다. fplot
이 plot 객체를 반환하도록 출력값을 지정합니다.
syms x
h = fplot(sin(x))
h = FunctionLine with properties: Function: sin(x) Color: [0.0660 0.4430 0.7450] LineStyle: '-' LineWidth: 0.5000 Show all properties
점 표기법으로 속성을 설정하여 디폴트 값인 파란색 선을 빨간색 파선으로 변경합니다. 마찬가지로, "x"
마커를 추가하고 마커 색을 파란색으로 설정합니다.
h.LineStyle = "--"; h.Color = "r"; h.Marker = "x"; h.MarkerEdgeColor = "b";
구간 [-2*pi 2*pi]
에 sin(x)
를 플로팅합니다. 제목과 축 레이블을 추가합니다. pi/2
간격으로 축 제한 범위 내에 축 눈금을 만듭니다. XTick
속성을 사용하여 이러한 눈금을 표시합니다. texlabel
을 S
에 적용하도록 arrayfun
을 사용하여 축 레이블을 만듭니다. XTickLabel
속성을 사용하여 이러한 레이블을 표시합니다.
플롯에서 LaTeX을 사용하려면 latex
항목을 참조하십시오.
syms x fplot(sin(x),[-2*pi 2*pi]) grid on title("sin(x) from -2\pi to 2\pi") xlabel("x") ylabel("y") ax = gca; S = sym(ax.XLim(1):pi/2:ax.XLim(2)); ax.XTick = double(S); ax.XTickLabel = arrayfun(@texlabel,S,UniformOutput=false);
플롯을 확대하면 fplot
이 플롯을 자동으로 다시 계산합니다. 확대 시 다시 계산되면 더 작은 스케일로 정보를 세부적으로 표시합니다.
및
에 대해 곡선
을 플로팅합니다.
zoom
을 사용하여 플롯을 확대하고 drawnow
를 사용하여 플롯을 다시 그립니다. 확대 시 다시 계산되기 때문에 fplot
은 정보를 세부적으로 표시합니다. 6번 확대를 반복하여 더 작은 스케일의 세부 정보를 표시합니다.
syms x fplot(x^3*sin(1/x)); axis([-2 2 -0.02 0.02]); for i=1:6 zoom(1.7) pause(0.5) end
파라미터 곡선의 애니메이션을 만듭니다(파라미터 중 하나는 시간에 따라 변경됨). 파라미터 곡선의 좌표와
좌표는 다음과 같이 주어집니다.
변수 를 0.1부터 3까지 변화시키면서 파라미터 곡선에 대한 애니메이션을 표시합니다.
2개의 기호 변수 k
와 t
를 만듭니다. 변수 k
를 사용하여 범위 [-5 5]
내에 있는 곡선을 파라미터화하고 변수 t
를 사용하여 0.1에서 3까지 시간이 경과함에 따라 곡선에 대한 애니메이션을 표시합니다. fanimator
를 사용하여 시간 스냅샷의 스톱모션 애니메이션 객체를 만듭니다. 축과
축의 길이를 동일하게 설정합니다.
syms k t fanimator(@fplot,k*t*sin(k*t),k*t*cos(k*t),[-5 5],AnimationRange = [0.1 3]) axis equal
playAnimation
을 사용하여 애니메이션을 재생합니다.
playAnimation
writeAnimation
을 사용하여 애니메이션을 GIF 파일로 저장할 수도 있습니다.
writeAnimation("parametricCurve.gif")
입력 인수
플로팅할 표현식 또는 함수로, 기호 표현식 또는 기호 함수로 지정됩니다.
x 좌표의 플로팅 구간으로, 숫자 2개로 구성된 벡터로 지정됩니다. 디폴트 범위는 [-5 5]
입니다. 그러나 fplot
이 f
에서 유한 개의 불연속점을 발견한 경우 fplot
은 범위를 확장하여 이러한 점을 표시합니다.
x 좌표에 대한 파라미터 입력값으로, 기호 표현식 또는 기호 함수로 지정됩니다. fplot
은 symvar
을 사용하여 파라미터를 구합니다.
y축에 대한 파라미터 입력값으로, 기호 표현식 또는 기호 함수로 지정됩니다. fplot
은 symvar
을 사용하여 파라미터를 구합니다.
파라미터 t
값의 범위로, 숫자 2개로 구성된 벡터로 지정됩니다. 디폴트 범위는 [-5 5]
입니다.
axes 객체입니다. axes 객체를 지정하지 않으면 fplot
은 현재 좌표축 gca
를 사용합니다.
선 스타일, 마커, 색으로, 기호가 포함된 string형 스칼라 또는 문자형 벡터로 지정됩니다. 기호는 어떤 순서로 지정해도 좋습니다. 세 가지 특성(선 스타일, 마커, 색)을 모두 지정할 필요는 없습니다. 예를 들어, 선 스타일을 생략하고 마커를 지정하면 플롯은 마커만 표시하고 선은 표시하지 않습니다.
예: "--or"
는 원 마커로 표시된 빨간색 파선입니다.
선 스타일 | 설명 | 결과 선 |
---|---|---|
"-" | 실선 |
|
"--" | 파선 |
|
":" | 점선 |
|
"-." | 일점 쇄선 |
|
마커 | 설명 | 결과 마커 |
---|---|---|
"o" | 원 |
|
"+" | 플러스 기호 |
|
"*" | 별표 |
|
"." | 점 |
|
"x" | 십자 |
|
"_" | 가로선 |
|
"|" | 세로선 |
|
"square" | 정사각형 |
|
"diamond" | 다이아몬드 |
|
"^" | 위쪽 방향 삼각형 |
|
"v" | 아래쪽 방향 삼각형 |
|
">" | 오른쪽 방향 삼각형 |
|
"<" | 왼쪽 방향 삼각형 |
|
"pentagram" | 펜타그램 |
|
"hexagram" | 헥사그램 |
|
색 이름 | 짧은 이름 | RGB 3색 | 모양 |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: Marker="o",MarkerFaceColor="red"
여기에 나와 있는 function line 속성은 일부에 불과합니다. 전체 목록은 FunctionLine 속성을 참조하십시오.
계산 지점 개수로, 숫자로 지정됩니다. 디폴트 값은 23
입니다. fplot
가 적응형 실행을 사용하므로 실제 계산 지점 개수는 더 많습니다.
극에 점근선을 표시할지 여부로, "on"
또는 "off"
나 숫자형 값 또는 논리값 1
(true
) 또는 0
(false
)으로 지정됩니다. 값이 "on"
이면 true와 같고 "off"
이면 false
와 같습니다. 따라서 이 속성의 값을 논리값으로 사용할 수 있습니다. 값은 matlab.lang.OnOffSwitchState
유형의 on/off 논리값으로 저장됩니다.
점근선은 회색의 세로 파선으로 표시됩니다. fplot
은 fplot(f)
구문이나 이 구문의 변형인 경우에만 점근선을 표시하며 fplot(xt,yt)
구문에 대해서는 표시하지 않습니다.
선 색으로, RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다.
사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.
RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는
[0,1]
이어야 합니다(예:[0.4 0.6 0.7]
).16진수 색 코드는 string형 스칼라 또는 문자형 벡터로, 해시 기호(
#
)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0
에서F
사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드"#FF8800"
,"#ff8800"
,"#F80"
및"#f80"
은 모두 동일합니다.
몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 RGB 3색 및 16진수 색 코드가 나와 있습니다.
색 이름 | 짧은 이름 | RGB 3색 | 16진수 색 코드 | 모양 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
다음 표에는 라이트 테마와 다크 테마에서 플롯의 디폴트 색 팔레트가 나열되어 있습니다.
팔레트 | 팔레트 색 |
---|---|
R2025a 이전: 대부분의 플롯이 기본적으로 이 색상을 사용합니다. |
|
|
|
orderedcolors
및 rgb2hex
함수를 사용하여 이 팔레트의 RGB 3색 및 16진수 색 코드를 구할 수 있습니다. 예를 들어, "gem"
팔레트의 RGB 3색을 구한 다음 16진수 색 코드로 변환합니다.
RGB = orderedcolors("gem");
H = rgb2hex(RGB);
R2023b 이전: RGB = get(groot,"FactoryAxesColorOrder")
를 사용하여 RGB 3색을 구합니다.
R2024a 이전: H = compose("#%02X%02X%02X",round(RGB*255))
를 사용하여 16진수 색 코드를 구합니다.
예: "blue"
예: [0 0 1]
예: "#0000FF"
선 스타일로, 다음 표에 나열된 옵션 중 하나로 지정됩니다.
선 스타일 | 설명 | 결과 선 |
---|---|---|
"-" | 실선 |
|
"--" | 파선 |
|
":" | 점선 |
|
"-." | 일점 쇄선 |
|
"none" | 선 없음 | 선 없음 |
선 너비로, 양의 값으로 지정됩니다(단위: 포인트). 여기서 1포인트는 1/72인치와 같습니다(1인치 = 2.54cm). 선에 마커가 있는 경우 선 너비는 마커 가장자리에도 영향을 미칩니다.
선 너비는 픽셀 너비보다 가늘 수 없습니다. 선 너비를 시스템의 픽셀 너비보다 작은 값으로 설정할 경우 선은 1픽셀 너비로 표시됩니다.
마커 기호로, 다음 표에 나열된 값 중 하나로 지정됩니다. 기본적으로 객체는 마커를 표시하지 않습니다. 마커 기호를 지정하면 각 데이터 점이나 꼭짓점에 마커가 추가됩니다.
마커 | 설명 | 결과 마커 |
---|---|---|
"o" | 원 |
|
"+" | 플러스 기호 |
|
"*" | 별표 |
|
"." | 점 |
|
"x" | 십자 |
|
"_" | 가로선 |
|
"|" | 세로선 |
|
"square" | 정사각형 |
|
"diamond" | 다이아몬드 |
|
"^" | 위쪽 방향 삼각형 |
|
"v" | 아래쪽 방향 삼각형 |
|
">" | 오른쪽 방향 삼각형 |
|
"<" | 왼쪽 방향 삼각형 |
|
"pentagram" | 펜타그램 |
|
"hexagram" | 헥사그램 |
|
"none" | 마커 없음 | 해당 없음 |
마커 윤곽선 색으로, "auto"
, RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. 디폴트 값인 "auto"
는 Color
속성과 동일한 색을 사용합니다.
사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.
RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는
[0,1]
이어야 합니다(예:[0.4 0.6 0.7]
).16진수 색 코드는 string형 스칼라 또는 문자형 벡터로, 해시 기호(
#
)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0
에서F
사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드"#FF8800"
,"#ff8800"
,"#F80"
및"#f80"
은 모두 동일합니다.
몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 RGB 3색 및 16진수 색 코드가 나와 있습니다.
색 이름 | 짧은 이름 | RGB 3색 | 16진수 색 코드 | 모양 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | 해당 없음 | 해당 없음 | 해당 없음 | 색 없음 |
다음 표에는 라이트 테마와 다크 테마에서 플롯의 디폴트 색 팔레트가 나열되어 있습니다.
팔레트 | 팔레트 색 |
---|---|
R2025a 이전: 대부분의 플롯이 기본적으로 이 색상을 사용합니다. |
|
|
|
orderedcolors
및 rgb2hex
함수를 사용하여 이 팔레트의 RGB 3색 및 16진수 색 코드를 구할 수 있습니다. 예를 들어, "gem"
팔레트의 RGB 3색을 구한 다음 16진수 색 코드로 변환합니다.
RGB = orderedcolors("gem");
H = rgb2hex(RGB);
R2023b 이전: RGB = get(groot,"FactoryAxesColorOrder")
를 사용하여 RGB 3색을 구합니다.
R2024a 이전: H = compose("#%02X%02X%02X",round(RGB*255))
를 사용하여 16진수 색 코드를 구합니다.
마커 채우기 색으로, "auto"
, RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. "auto"
값은 MarkerEdgeColor
속성과 동일한 색을 사용합니다.
사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.
RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는
[0,1]
이어야 합니다(예:[0.4 0.6 0.7]
).16진수 색 코드는 string형 스칼라 또는 문자형 벡터로, 해시 기호(
#
)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0
에서F
사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드"#FF8800"
,"#ff8800"
,"#F80"
및"#f80"
은 모두 동일합니다.
몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 RGB 3색 및 16진수 색 코드가 나와 있습니다.
색 이름 | 짧은 이름 | RGB 3색 | 16진수 색 코드 | 모양 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | 해당 없음 | 해당 없음 | 해당 없음 | 색 없음 |
다음 표에는 라이트 테마와 다크 테마에서 플롯의 디폴트 색 팔레트가 나열되어 있습니다.
팔레트 | 팔레트 색 |
---|---|
R2025a 이전: 대부분의 플롯이 기본적으로 이 색상을 사용합니다. |
|
|
|
orderedcolors
및 rgb2hex
함수를 사용하여 이 팔레트의 RGB 3색 및 16진수 색 코드를 구할 수 있습니다. 예를 들어, "gem"
팔레트의 RGB 3색을 구한 다음 16진수 색 코드로 변환합니다.
RGB = orderedcolors("gem");
H = rgb2hex(RGB);
R2023b 이전: RGB = get(groot,"FactoryAxesColorOrder")
를 사용하여 RGB 3색을 구합니다.
R2024a 이전: H = compose("#%02X%02X%02X",round(RGB*255))
를 사용하여 16진수 색 코드를 구합니다.
예: [0.3 0.2 0.1]
예: "green"
예: "#D2F9A7"
마커 크기로, 양의 값으로 지정됩니다(단위: 포인트). 여기서 1포인트는 1/72인치와 같습니다(1인치 = 2.54cm).
출력 인수
하나 이상의 function line 또는 parameterized function line 객체로, 스칼라나 벡터로 반환됩니다.
fplot(f)
구문이나 이 구문의 변형을 사용하는 경우fplot
은 function line 객체를 반환합니다.fplot(xt,yt)
구문이나 이 구문의 변형을 사용하는 경우fplot
은 parameterized line 객체를 반환합니다.
이러한 객체를 사용하여 특정 선의 속성을 쿼리하고 수정할 수 있습니다. 속성 목록은 FunctionLine 속성과 ParameterizedFunctionLine 속성을 참조하십시오.
팁
fplot
이f
에서 유한 개의 불연속점을 감지하는 경우,fplot
은 범위를 확장하여 이를 보여줍니다.fplot
을 명명된 함수 또는 익명 함수(기호 표현식이나 기호 함수가 아님)에 함수 핸들과 함께 사용하면 MATLAB®fplot
함수가 호출됩니다. 이 경우 함수 핸들은 벡터 입력 인수를 받고 동일한 크기의 벡터 출력 인수를 반환해야 합니다. 최상의 성능을 위해서는 행렬 연산자 대신에 배열 연산자를 사용하십시오. 예를 들어 코드fplot(@(x) x.*sin(2*pi*x))
에서는*
(mtimes
) 대신에.*
(times
)를 사용합니다.
버전 내역
R2016a에 개발됨
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)