how to multiply 2 matrix A of dimension 5*4 and matrix B of dimension 4*1 upto k times?

조회 수: 1 (최근 30일)
this is the code we tried .But we are not getting appropriate output
clc;
clear all;
m=5;
n=4;
k=3;
x=2*randint(n,1)-1;
p=rand(m,n,k);
y(m,1,k)=p(m,n,k).*x(n,1);
  댓글 수: 3
PLACEIUS NISHIGA G
PLACEIUS NISHIGA G 2018년 2월 27일
we are getting wrong outputs.Could you suggest a solution for this.

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

채택된 답변

Birdman
Birdman 2018년 2월 27일
Firstly, x variable here is not 4x1 and also .* means elementwise multiplcation but you want to do matrix multiplication, therefore use the following code(Note that whatever your size is, which is k in this case, the matrices are going to be multiplied):
m=5;n=4;k=3;
x=2*randi(n,[n 1])-1
p=rand(m,n,k)
p2D=reshape(permute(p,[1 3 2]),[],size(p,2));
y=reshape(p2D*x,size(p,1),[],size(p,3))

추가 답변 (1개)

Andrei Bobrov
Andrei Bobrov 2018년 2월 27일
m=5;
n=4;
k=3;
x = 2*(rand(n,1) > .5) - 1;
p = rand(m,n,k);
y = squeeze(sum(bsxfun(@times,p,reshape(x,1,[])),2))

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by