2014-03-05 3 views
0

변수 a가 할당 된 행렬이 있습니다.행렬 차원이 일치해야하지만 정확합니다.

행렬은의 크기가 < 112 * 92 UINT8>

는 그러므로 내가

b = a'; c = b .*a; 

그러나, 차원이 내가 해결할 수없는 생각하는 일치하지 않음을 말한다 다음 코드를 실행 이유는 무엇입니까

+2

A''의 크기는 112x92 크기이기 때문에 늘 일 b의 92x112입니다. 어쩌면'. *'연산자 대신에'*'를 의미할까요? – Marcin

+0

@Marcin 나는 *을 사용했지만 작동하지 않습니다. 정수 클래스에 대해 mtimes 오류가 완전히 지원되지 않았습니다. – aceminer

+1

어떤 MATLAB 버전을 사용하고 있습니까? – chappjc

답변

1

예제는 두 개의 행렬이 동일한 모양이어야하는 요소 별 곱하기를 수행하는 것입니다.

당신이 @ Marcin의 질문에 준 답변에서 원래 매트릭스 크기가 호환되는 행렬 곱셈 a*b을 시도하고 사용자가 언급 한 잘못된 메시지를 수신했다고 가정합니다. 이 메시지를 일으키는 문제는 행렬 치수와 관련이 없습니다. Matlab은 uint8 행렬에 대해 행렬 곱셈 연산자를 지원하지 않으며이 유형의 행렬에 스칼라를 곱하는 오버로드 만 지원합니다. 실제로 이는 모든 정수 유형에 해당됩니다. 당신은 정수 유형의 행렬을 곱하려면

, 당신은 곱하고 다시 주조, 부동 소수점 형에 각각 캐스팅해야한다 예 :

c = uint8(single(a)*single(b')); 
관련 문제