# Is A./B different from B.\A?

조회 수: 125(최근 30일)
Oliver Woodford 2015년 6월 17일
편집: James Tursa 2021년 10월 29일
Given two matrices, A and B, will A./B ever give a different answer from B.\A, or are these two expressions equivalent?
It seems that even for complex numbers they return the same thing. E.g.
>> A = sqrt(randn(3));
>> B = sqrt(randn(3));
>> isequal(A./B, B.\A)
ans = 1
##### 댓글 수: 3표시숨기기 이전 댓글 수: 2
Stephen23 2015년 6월 17일
According to the documentation A.\B and B./A are the same:
• ldivide: " B.\A divides each element of A by the corresponding element of B"
• rdivide: " A./B divides each element of A by the corresponding element of B"
Unless the definition of "divide" is different, then these should be the same.

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

### 채택된 답변

James Tursa 2015년 6월 17일
I can't think of any reason why one would ever get different results for numeric types. I suppose there might be speed differences if one form used multi-threading and the other form didn't, but in tests I just ran they both appeared to take about the same amount of time.
User defined classes could of course overload them differently.
##### 댓글 수: 6표시숨기기 이전 댓글 수: 5
James Tursa 2021년 10월 29일
편집: James Tursa 2021년 10월 29일
Yes, your expectations are correct. For the MATLAB toolbox quaternion class objects, the q./p and p.\q operations are implemented as expected by multiplying by the inverse, and since multiplication is non-commutative you get different results.
>> x = rand(1,4)-0.5; x = x/norm(x); q = quaternion(x);
>> x = rand(1,4)-0.5; x = x/norm(x); p = quaternion(x);
>> q
q =
quaternion
-0.62168 + 0.46748i + 0.58112j + 0.23933k
>> p
p =
quaternion
0.64169 + 0.60532i - 0.26832j + 0.38709k
>> q./p
ans =
quaternion
-0.17923 + 0.38713i + 0.24217j + 0.87141k
>> p.\q
ans =
quaternion
-0.17923 + 0.96545i + 0.17j - 0.082977k
>> q*conj(p)
ans =
quaternion
-0.17923 + 0.38713i + 0.24217j + 0.87141k
>> conj(p)*q
ans =
quaternion
-0.17923 + 0.96545i + 0.17j - 0.082977k
>> which quaternion
C:\Program Files\MATLAB\R2020a\toolbox\shared\rotations\rotationslib\@quaternion\quaternion.m % quaternion constructor
Note that the / and \ operators are not implemented for this class:
>> q/p
Error using /
Arguments must be numeric, char, or logical.
>> p\q
Error using \
Arguments must be numeric, char, or logical.

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

### 추가 답변(2개)

Alberto 2015년 6월 17일
Both are pointwise, but A./B divides every element in A by the same element in B. A.\B divides every element in B by the same element in A.
##### 댓글 수: 1표시숨기기 없음
Oliver Woodford 2015년 6월 17일

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

H. Sh. G. 2021년 9월 28일
Hi every body.
I wonder what kind of calculations the division of a matrix (X) by a row vector (y), i.e. X/y, does, where both have the same number of columns.
The result is a column vector of the same number of rows that X has.
Recall that X./y divides all elements of each column in X by the element of y in the same column, resulting in a matrix with the same size of X.
##### 댓글 수: 4표시숨기기 이전 댓글 수: 3
H. Sh. G. 2021년 9월 29일
Thanks Bruno,
This explains my question well.

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

### 범주

Find more on Orientation, Position, and Coordinate Systems in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by