Entering edit mode
Hi,
I
want to multiply a vector (1st argument) by another vector or a matrix
(2nd argument) depends if a column or a row of a matrix or a subset of
a matrix is taken. The first argument presents a coefficient vector
(of
1 or more elements) that will be multiplied by all elements of the 2nd
argument. Therefore, the final product (multiplication of the 2
arguments) will be a vector of the length of the number of rows of the
2nd argument.
I wanted to use %*% for all cases, either taking
directly the 2nd argument or its tansposal but it doesn't work for all
cases. Do I have to test the type of 2nd argument and write a
different
script lines or can I use a script line for all cases?
for example, I will have the following different cases:
a1 = c(1)
a2 = c(2)
res = a1*a2 = 2
c(1)%*%c(2)
[,1]
[1,] 2
a1 = c(1)
a2 = c(1,2)
res = a1*a2 = [3]
sum(c(1)*c(1,2)) to get 3
here, %*% is not of help
a1 = c(1,2)
a2 = c(2,1)
res = 4
c(1,2)%*%c(2,1)
so a1%*%a2 would work
a1 = c(1,2)
a2 = rbind(c(1,2), c(2,1))
res = [5 4]
a1%*%a2
[,1] [,2]
[1,] 5 4
a1 = c(1,2,3)
a2 = rbind(c(1,2,3), c(2,1,3))
a1%*%t(a2)
[,1] [,2]
[1,] 14 13
etc
[[alternative HTML version deleted]]