MATLAB saying not enough input arguments.
조회 수: 1 (최근 30일)
이전 댓글 표시
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
댓글 수: 0
답변 (2개)
Image Analyst
2014년 2월 18일
Use double &
if (na == mx && nx == 1)
댓글 수: 2
Image Analyst
2014년 2월 18일
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
2014년 2월 18일
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.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!