matrix multiplication using bsxfun(@times,a,b)

조회 수: 7 (최근 30일)
summyia qamar 2016년 12월 15일
답변: John D'Errico 2016년 12월 15일
a=[1 0 0 1 0 1 1
0 1 1 1 0 0 1
1 0 0 1 1 0 0
1 0 0 0 1 0 1
1 1 0 0 0 1 0
0 1 0 0 0 1 1]
b=[0 1 0
0 1 0
1 0 0
0 0 1
0 0 1
0 0 1
0 0 1]
c=bsxfun(@times,a,b)
but it is giving error
Error using bsxfun
Non-singleton dimensions of the two input arrays must match each other.
how to multiply (6x7) matrix with (7x3) to get a matrix(6x3)

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

채택된 답변

James Tursa 2016년 12월 15일
편집: James Tursa 2016년 12월 15일
Not sure if this is the operation you really want from your description:
a = 6x7 matrix
b = 7x3 matrix
c = a * b; % 6x3 matrix

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

추가 답변 (2개)

David Barry 2016년 12월 15일
The issue is because both a and b are vectors rather than matrices in the example you have shown there. Presumably what you want is something like:
a = reshape(a, 6, 7);
b = reshape(b, 7, 3);
c = a*b;
댓글 수: 0이전 댓글 -2개 표시이전 댓글 -2개 숨기기

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

John D'Errico 2016년 12월 15일
Neither of those matrices is either 6x7 or 7x3, so your question is nonsense as written.
Perhaps your intention is that these VECTORS be reshaped into MATRICES of the given sizes. In that case, use reshape, then merely do a simple matrix multiply, using the * operator.
But you cannot use a tool like bsxfun to do something that only you know what you want it to do. Software simply does not work that way.

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

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by