BasicLinearAlgebra multiplication

multiplication of a 1x3 matrix to 3x1 matrix should give a 3 row/column answer. But with basic linear algebra library one can either get a 1x1 (one number) or a 3x3 (9 numbers) answer. Is there a way to get the correct 1x3 (3 numbers) answer?

I run the following code

#include <BasicLinearAlgebra.h>
using namespace BLA;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);

    // You can also set the entire array on construction like so:
    BLA::Matrix<3,1>  LW={2.1,2.1,2.1};
        
    BLA::Matrix<1,3> Input = {-0.17,1.00,-0.12};
     BLA::Matrix<3,3> InputxLW  = LW*Input;
    Serial.print("C: ");
    Serial.println(InputxLW);
    }

void loop() {
  // put your main code here, to run repeatedly:

}

obviously it gives 9 answers which is false. If i try to get a 1x3 answer it gives this error: conversion from 'BLA::Matrix<3, 3, float>' to non-scalar type 'BLA::Matrix<1, 3>' requested
any help?

Multiplying (3x1)(1x3) yields (3x3)
Multiplying (1x3)
(3x1) yields (1x1)
Multiplying (1x1)*(1x3) yields (1x3), which is perhaps what you are expecting

But i have 1*3 matrices.

which type of matrix exactly ?

➜ When multiplying a column vector by a row vector the result is a matrix.
➜ When multiplying a row vector by a column vector the result is a scalar.

when you do

you create this (3 rows, column)

when you do

you create this (1 row, 3 columns)
image

so

if you wanted to do

The expression 2.1 * Input, it performs scalar multiplication on the matrix Input . Each element of the matrix Input is multiplied by the scalar value 2.1 .

Thanks for explaining. My maths were wrong.