I am getting an error "Variable a must be of data type char. It is currently of type double. Check where the variable is assigned a value."

조회 수: 25 (최근 30일)
Question:
Using matrix multiplication, multiply A1 by A1, set to a
Using matrix multiplication, multiply v1 by A1, set to c
Input: A1 = [-2:1; 1:-1:-2; -2:2:4]
v1 = linspace(-2,4,4)
a = A1 .* A1
c = v1 .* A1
output:
Variable a must be of data type char. It is currently of type double. Check where the variable is assigned a value.

답변 (1개)

Pratik
Pratik 2024년 2월 13일
Hi Chloe,
In my understanding, you want to perform matrix multiplication between A1 & A1 , v1 & A1. The operator to perform matrix multiplication is '*' or function ‘mtimes’. Operator '.*' performs element wise multiplication.
I was not able to reproduce the error mentioned in the question with the code provided.
A1 = [-2:1; 1:-1:-2; -2:2:4]
A1 = 3×4
-2 -1 0 1 1 0 -1 -2 -2 0 2 4
v1 = linspace(-2,4,4)
v1 = 1×4
-2 0 2 4
a = A1 .* A1
a = 3×4
4 1 0 1 1 0 1 4 4 0 4 16
c = v1 .* A1
c = 3×4
4 0 0 4 -2 0 -2 -8 4 0 4 16
For matrix multiplication of matrices A and B, the number of columns of A must equal the number of rows of B.
Please refer to the documentation of “mtimes” for more information on matrix multiplication:
Please refer to the documentation of “times” for more information on element wise multiplication:
I hope this helps!

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by