MATLAB saying not enough input arguments.

I am probably missing something completely obvious because I am very new to matlab.
function y = myrowproduct(A, x)
%This function computes the pro
%duct of matrix A by
%vector x row-wise
% define m number of rows here to feed into for loop
[ma,na] = size(A);
[mx,nx] = size(x);
% use if statement to check for proper dimensions
if(na == mx & nx == 1)
y = zeros(ma,1); % initialize y vector for n = 1:ma
y(n) = A(n,:)*x;
else
disp('Dimensions of matrices do not match')
y = [];
end
end

답변 (2개)

Image Analyst
Image Analyst 2014년 2월 18일

0 개 추천

Use double &
if (na == mx && nx == 1)

댓글 수: 2

Ok, I did that. I am getting.
Error in mfile (line 11)
y(n) = A(n,:)*x;
You need
y(n) = A(n,:) .* x';
to multiply the column elements of row n in y by the row elements in the column vector x.

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

Star Strider
Star Strider 2014년 2월 18일

0 개 추천

Your value of n is undefined. Not to spoil your fun in troubleshooting your code, but you need a for loop:
A = rand(4);
x = rand(4,1);
na = size(A,1);
for n = 1:na
y(n,:) = A(n,:)*x;
end
Adding the colon in the subscript ( y(n,:) = ... ) forces it to be a column vector, as it should be.
Check your code. Right now, you will only get an empty matrix for y.

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2014년 2월 18일

댓글:

2014년 2월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by