Main Content

zeros

고정소수점 속성을 갖는 모두 0으로 구성된 배열 생성

설명

예제

X = zeros('like',p)p와 동일한 numerictype, 실수/복소수 여부, fimath를 갖는 스칼라 0을 반환합니다.

예제

X = zeros(n,'like',p)p와 동일한, 0으로 구성된 n×n 배열을 반환합니다.

예제

X = zeros(sz1,...,szN,'like',p)p와 동일한, 0으로 구성된 sz1×...×szN 배열을 반환합니다.

예제

X = zeros(sz,'like',p)p와 동일한, 0으로 구성된 배열을 반환합니다. 크기 벡터 szsize(X)를 정의합니다.

예제

모두 축소

지정된 numerictype 및 fimath 속성을 갖는 0으로 구성된 2×3 배열을 만듭니다.

워드 길이가 24이고 소수부 길이가 12인 부호 있는 fi 객체를 만듭니다.

p = fi([],1,24,12);

p와 동일한 numerictype 속성을 갖는 0으로 구성된 2×3 배열을 만듭니다.

X = zeros(2,3,'like',p)
X = 
     0     0     0
     0     0     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 24
        FractionLength: 12

3×2 배열 A를 정의합니다.

A = [1 4 ; 2 5 ; 3 6];

sz = size(A)
sz = 1×2

     3     2

워드 길이가 24이고 소수부 길이가 12인 부호 있는 fi 객체를 만듭니다.

p = fi([],1,24,12);

A와 크기가 동일하고 p와 동일한 numerictype 속성을 갖는 0으로 구성된 배열을 만듭니다.

X = zeros(sz,'like',p)
X = 
     0     0
     0     0
     0     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 24
        FractionLength: 12

지정된 numerictype 및 fimath 속성을 갖는 0으로 구성된 4×4 배열을 만듭니다.

워드 길이가 24이고 소수부 길이가 12인 부호 있는 fi 객체를 만듭니다.

p = fi([],1,24,12);

p와 동일한 numerictype 속성을 갖는 0으로 구성된 4×4 배열을 만듭니다.

X = zeros(4, 'like', p)
X = 
     0     0     0     0
     0     0     0     0
     0     0     0     0
     0     0     0     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 24
        FractionLength: 12

실수 값이 아니며, 대신 기존 배열과 같은 복소수 스칼라 고정소수점 0을 만듭니다.

복소수 fi 객체를 정의합니다.

p = fi( [1+2i 3i],1,24,12);

p와 같은 복소수인 스칼라 1을 만듭니다.

X = zeros('like',p)
X = 
   0.0000 + 0.0000i

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 24
        FractionLength: 12

알고리즘 자체를 변경하지 않고도 여러 다른 데이터형으로 실행할 수 있는 MATLAB® 알고리즘을 작성합니다. 알고리즘을 재사용하려면 알고리즘에서 데이터형 정의를 분리하십시오.

이 방법을 사용하면 부동소수점 데이터형으로 알고리즘을 실행하여 기준을 정의할 수 있습니다. 그런 다음 원래 MATLAB 코드를 수정하지 않고도 여러 다른 고정소수점 데이터형으로 알고리즘을 테스트하고 고정소수점 동작을 기준과 비교할 수 있습니다.

계수, 입력 데이터, 출력 데이터의 데이터형이 정의된 구조체 T를 입력 파라미터로 받는 MATLAB 함수 my_filter를 작성합니다.

function [y,z] = my_filter(b,a,x,z,T)
    % Cast the coefficients to the coefficient type
    b = cast(b,'like',T.coeffs);
    a = cast(a,'like',T.coeffs);
    % Create the output using zeros with the data type
    y = zeros(size(x),'like',T.data);
    for i = 1:length(x)
        y(i) = b(1)*x(i) + z(1);
        z(1) = b(2)*x(i) + z(2) - a(2) * y(i);
        z(2) = b(3)*x(i)        - a(3) * y(i);
    end
end

my_filter를 부동소수점 계단 입력을 사용해서 호출하고 고정소수점 계단 입력을 사용해서 호출하는 MATLAB 함수 zeros_ones_cast_example을 작성해서 결과를 비교합니다.

function zeros_ones_cast_example

    % Define coefficients for a filter with specification
    % [b,a] = butter(2,0.25)
    b = [0.097631072937818   0.195262145875635   0.097631072937818];
    a = [1.000000000000000  -0.942809041582063   0.333333333333333];

    % Define floating-point types
    T_float.coeffs = double([]);
    T_float.data   = double([]);

    % Create a step input using ones with the 
    % floating-point data type
    t = 0:20;
    x_float = ones(size(t),'like',T_float.data);

    % Initialize the states using zeros with the 
    % floating-point data type
    z_float = zeros(1,2,'like',T_float.data);

    % Run the floating-point algorithm
    y_float = my_filter(b,a,x_float,z_float,T_float);
     
    % Define fixed-point types
    T_fixed.coeffs = fi([],true,8,6);
    T_fixed.data   = fi([],true,8,6);

    % Create a step input using ones with the 
    % fixed-point data type
    x_fixed = ones(size(t),'like',T_fixed.data);

    % Initialize the states using zeros with the 
    % fixed-point data type
    z_fixed = zeros(1,2,'like',T_fixed.data);

    % Run the fixed-point algorithm
    y_fixed = my_filter(b,a,x_fixed,z_fixed,T_fixed);
     
    % Compare the results
    coder.extrinsic('clf','subplot','plot','legend')
    clf
    subplot(211)
    plot(t,y_float,'co-',t,y_fixed,'kx-')
    legend('Floating-point output','Fixed-point output')
    title('Step response')
    subplot(212)
    plot(t,y_float - double(y_fixed),'rs-')
    legend('Error')
    figure(gcf)
end

입력 인수

모두 축소

정사각 행렬의 크기로, 정수 값으로 지정되며, 출력값을 1로 구성된 정사각 n×n 행렬로 정의합니다.

  • n이 0이면 X는 빈 행렬이 됩니다.

  • n이 음수이면 0으로 처리됩니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

각 차원의 크기로, 2개 이상의 정수 값으로 지정되며, X를 sz1×...×szN 배열로 정의합니다.

  • 크기가 0인 차원이 있을 경우 X는 빈 배열이 됩니다.

  • 크기가 음수인 차원이 있을 경우 0으로 처리됩니다.

  • 2보다 큰 후행 차원의 크기가 1일 경우 출력값 X에 해당 차원이 포함되지 않습니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 크기로, 정수 값으로 구성된 행 벡터로 지정됩니다. 이 벡터의 요소는 각각 대응하는 차원의 크기를 나타냅니다.

  • 크기가 0인 차원이 있을 경우 X는 빈 배열이 됩니다.

  • 크기가 음수인 차원이 있을 경우 0으로 처리됩니다.

  • 2보다 큰 후행 차원의 크기가 1일 경우 출력값 X에 해당 차원이 포함되지 않습니다.

예: sz = [2,3,4]X를 2×3×4 배열로 정의합니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

프로토타입으로, fi 객체 또는 숫자형 변수로 지정됩니다. 복소수 객체를 지정할 때 프로토타입을 사용하려면 프로토타입 값을 지정해야 합니다. 그 외의 경우에는 값을 지정하지 않아도 됩니다.

복소수 지원: 예

b = cast(a,'like',p) 구문을 사용하여 데이터형 지정을 알고리즘 코드와 분리하면 다음이 가능합니다.

  • 여러 다른 데이터형에 대해 알고리즘 코드를 재사용할 수 있습니다.

  • 데이터형 사양과 여러 데이터형에 대한 switch 문을 사용하면 알고리즘이 지저분해지지 않게 관리할 수 있습니다.

  • 알고리즘 코드의 가독성을 높일 수 있습니다.

  • 고정소수점 데이터형과 부동소수점 데이터형 간에 전환하여 기준을 비교할 수 있습니다.

  • 알고리즘 코드를 변경하지 않고도 여러 변형의 고정소수점 설정 간에 전환할 수 있습니다.

버전 내역

R2013a에 개발됨