Filter löschen
Filter löschen

How to multiply each element separately from row first to next row in matrix?

7 Ansichten (letzte 30 Tage)
Hello,
I want to multiply elements in the first row to the next row within the matrix to get a vector ( without Prod() function , only use of loop)
Example,
% code
matrix [1,2,3;
4,5,6;
7,8,9]
v=[(1*4*7),(2*5*8),(3*6*9)]
I have an error code
% code
a=input('Enter a matrix');
z=[]
[m,n]=size(a);
for i=1:m
c=a(i,:)
c2=a(i+1,:)
d=c.*c2
z=[z,d]
end
Thanks in advance :)

Antworten (2)

KSSV
KSSV am 30 Mai 2018
Bearbeitet: KSSV am 30 Mai 2018
a=input('Enter a matrix');
[m,n]=size(a);
iwant = zeros(1,n) ;
for j=1:n
P = 1 ;
for i = 1:m
P = a(i,j)*P ;
end
iwant(j) = P ;
end
  2 Kommentare
Emilia
Emilia am 30 Mai 2018
Thank you!
If the matrix is have not nXn, then how do solve this?
KSSV
KSSV am 30 Mai 2018
Modified the code...it shall work for any dimension....:p

Melden Sie sich an, um zu kommentieren.


Stephen23
Stephen23 am 30 Mai 2018
Bearbeitet: Stephen23 am 30 Mai 2018
Simpler:
M = [1,2,3;4,5,6;7,8,9];
P = 1;
for k = 1:size(M,1)
P = P .* M(k,:);
end
Giving:
>> P
P = 28 80 162
and just for comparison:
>> prod(M,1)
ans = 28 80 162

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by