곱하기, 행렬 곱셈
스칼라와 비 스칼라를 곱하고 나누거나 행렬을 곱하고 역행렬 구하기
라이브러리:
Simulink /
Commonly Used Blocks
Simulink /
Math Operations
Simulink /
Matrix Operations
HDL Coder /
Commonly Used Blocks
HDL Coder /
HDL Floating Point Operations
HDL Coder /
Math Operations
설명
Product 블록은 두 입력(두 스칼라, 스칼라와 비 스칼라, 차원이 동일한 두 비 스칼라)을 곱한 결과를 출력합니다. 이 동작을 지정하는 디폴트 파라미터 값은 다음과 같습니다.
곱셈:
요소별(.*)입력 개수:
2
다음 표는 디폴트 블록 파라미터 값을 사용하여 Product 블록을 사용하여 서로 다른 차원의 입력 곱하기에 대한 Product 블록의 출력을 보여줍니다.
| 입력 및 동작 | 예 |
|---|---|
스칼라 X 스칼라 두 입력의 곱을 출력합니다. |
|
스칼라 X 비 스칼라 입력 비 스칼라와 동일한 차원을 갖는 비 스칼라를 출력합니다. 출력 비 스칼라의 각 요소는 입력 스칼라와 입력 비 스칼라의 대응하는 요소의 곱입니다. |
|
비 스칼라 X 비 스칼라 입력과 동일한 차원을 갖는 비 스칼라를 출력합니다. 출력에서의 각 요소는 입력들에서 대응하는 요소들의 곱입니다. |
|
Divide 블록과 Product of Elements 블록은 Product 블록의 Variant입니다.
Divide 블록에 대한 자세한 내용은 Divide를 참조하십시오.
Product of Elements 블록에 대한 자세한 내용은 Product of Elements를 참조하십시오.
Product 블록(또는 적절히 구성된 경우 Divide 블록 또는 Product of Elements 블록)은 다음을 수행할 수 있습니다.
스칼라, 벡터 또는 행렬 입력을 수치적으로 곱하고 나눕니다.
임의의 개수의 행렬 입력에 대해 행렬 곱셈과 나눗셈을 수행합니다.
Product 블록은 곱셈 파라미터의 값에 따라 스칼라 또는 행렬 곱셈을 수행합니다. 블록은 입력 개수 파라미터에 따라 하나 이상의 입력을 받습니다. 또한 입력 개수 파라미터는 각 입력에 대해 수행할 연산을 지정합니다.
Product 블록은 수학적 정의에 따라 결과를 계산할 수 있는 연산이라면 스칼라, 벡터, 행렬의 어떠한 조합이든 입력으로 사용할 수 있습니다. 블록은 입력에 대해 지정된 연산을 수행한 다음 결과를 출력합니다.
Product 블록에는 두 가지 모드가 있습니다. 요소별 모드는 비 스칼라 입력을 요소별로 처리하고, 행렬 모드는 비 스칼라 입력을 행렬로 처리합니다.
요소별 모드
곱셈을 요소별(.*)로 설정하면 Product 블록은 요소별 모드가 되며, 비 스칼라 입력의 개별 숫자 요소에 대해 연산을 수행합니다. MATLAB®의 .* 연산자에 해당합니다. 요소별 모드에서 Product 블록은 다양한 곱셈, 나눗셈 및 산술 역연산(arithmetic inversion operation)을 수행할 수 있습니다.
입력 개수 파라미터의 값은 입력의 개수를 제어하며, 출력을 계산할 때 각 입력을 곱할지 아니면 나눌지를 제어합니다. Product 블록이 요소별 모드이고 입력이 하나만 있는 경우에는 Product of Elements 블록과 기능적으로 동일합니다. 블록에 입력이 여러 개 있는 경우, 모든 비 스칼라 입력은 동일한 차원을 가져야 하며, 블록은 그와 같은 차원을 갖는 비 스칼라를 출력합니다. 출력을 계산하기 위해 블록은 먼저 모든 스칼라 입력을 비 스칼라 입력과 동일한 차원을 갖는 비 스칼라로 확장합니다.
다음 표는 입력 개수 파라미터에 지정된 값을 사용하여 Product 블록을 사용하여 서로 다른 차원의 입력 곱하기에 대한 Product 블록의 출력을 보여줍니다.
| 파라미터 값 | 예 |
|---|---|
입력 개수: |
|
입력 개수: |
|
입력 개수: |
|
입력 개수: |
|
입력 개수: |
|
행렬 모드
곱셈 파라미터의 값이 행렬(*)일 때, Product 블록은 행렬 모드가 되며, 비 스칼라 입력을 행렬로 처리합니다. MATLAB의 * 연산자에 해당합니다. 행렬 모드에서 Product 블록은 단일 정사각 행렬의 역행렬을 구할 수 있으며, 행렬이 수학적 정의에 따라 결과를 계산할 수 있는 차원을 갖는다면 이러한 행렬끼리 곱하거나 나눌 수 있습니다.
입력 개수 파라미터의 값은 입력의 개수를 제어하며, 출력을 계산할 때 각 입력을 곱할지 아니면 나눌지를 제어합니다. 입력 개수의 구문은 요소별 모드에서와 동일합니다. 두 모드의 차이는 발생하는 곱셈과 나눗셈의 유형입니다.
블록 입력과 모드 간 상호 작용
Product 블록의 입력과 곱셈 모드 간의 상호 작용은 다음과 같습니다.
1또는*또는/블록은 하나의 입력 포트를 갖습니다. 요소별 모드에서는 블록이 Product of Elements 블록에 설명된 대로 입력을 처리합니다. 행렬 모드에서는 파라미터 값이
1또는*인 경우 블록이 입력 값을 출력합니다. 값이/인 경우 입력은 정사각 행렬(퇴화된 유형으로서 스칼라도 포함)이어야 하며, 블록은 행렬의 역행렬을 출력합니다. 자세한 내용은 요소별 모드 항목과 행렬 모드 항목을 참조하십시오.1보다 큰 정수 값
블록은 정수 값으로 지정된 입력 개수를 갖습니다. 입력은 요소별 모드 또는 행렬 모드로 곱해지며, 이는 곱셈 파라미터로 지정됩니다. 자세한 내용은 요소별 모드 항목과 행렬 모드 항목을 참조하십시오.
따옴표로 묶이지 않은 두 개 이상의
*와/문자로 구성된 문자열블록은 문자형 벡터의 길이로 지정된 입력 개수를 갖습니다.
*문자에 해당하는 각 입력이 출력에 곱해집니다./문자에 해당하는 각 입력이 출력을 나눕니다. 연산은 요소별 모드 또는 행렬 모드로 곱해지며, 이는 곱셈 파라미터로 지정됩니다. 자세한 내용은 요소별 모드 항목과 행렬 모드 항목을 참조하십시오.
시뮬레이션과 코드 생성의 예상 차이점
복소수 부동소수점 입력에 대한 요소별 연산의 경우, 오버플로에 가까운 상황에서 시뮬레이션과 코드 생성 결과가 다를 수 있습니다. 구성 파라미터 대화 상자의 코드 생성 > 인터페이스 창에서 복소수를 선택하고 non-finite 숫자를 선택하지 않더라도, 코드 생성기는 중간 오버플로에 대한 특수 사례 코드를 생성하지 않습니다. 이 방법은 극값을 포함하지 않는 일반적인 경우에 임베디드 연산의 효율성을 향상시킵니다. 입력에 극값이 포함될 수 있는 경우라면 이러한 상황들을 명시적으로 관리해야 합니다.
NaN 값과 inf 값이 수학적으로 무의미한 경우, 생성 코드가 이러한 값을 시뮬레이션과 동일한 패턴으로 생성하지 않을 수 있습니다. 예를 들어 시뮬레이션 출력에 NaN이 포함된 경우, 생성 코드의 출력에도 NaN이 포함되지만 반드시 동일한 위치에 있지 않을 수 있습니다.
예제
포트
입력
출력
파라미터
블록 특성
데이터형 |
|
직접 피드스루 |
|
다차원 신호 |
|
가변 크기 신호 |
|
영점교차 검출 |
|










![2D matrix with Constant block value [1 2 3;7 6 4] as input to Product block configured for all dimensions](prod_alldim.png)
![2D matrix with Constant block value [1 2 3;7 6 4] as input to Product block configured for dimension 2](prod_2dim.png)