How do I create a matrix with specific values?

109 views (last 30 days)
Hi, I have a matrix (6x21) whose values ​​are those found experimentally. Let's call it: expbasket
I want to calculate the error between the obtained matrix and a matrix having real values.
The real values ​​are in row order: -9; -6; -3; 3; 6; 9 and every columns it's the same.
So I have to have a matrix like this:
realvalue= 6x21
-9 -9 -9 ...
-6 -6 -6 ...
-3 -3 3 ...
3 3 3 ...
6 6 6 ...
9 9 9 ...
By calculating the error, I mean the following operation between matrices:
errorbasket= realvalue - expbasket;
This should be another matrix 6x21;
Next I want to average the values ​​of each column. In order to obtain a vector of 21 elements. Where each element of this vector is the average of the elements of each column of the matrix errorbasket
  1 Comment
the cyclist
the cyclist on 1 Oct 2021
FYI, there is a very good tutorial that you might find useful for learning basic operations like these: MATLAB Onramp.

Sign in to comment.

Accepted Answer

DGM
DGM on 1 Oct 2021
Edited: DGM on 1 Oct 2021
Something like this:
expbasket = randi([-9 9],6,21); % placeholder data
rvalue = [-9; -6; -3; 3; 6; 9]; % don't need the whole matrix
errbasket = mean(rvalue - expbasket,1)
errbasket = 1×21
-1.3333 -1.0000 -1.6667 3.5000 -1.6667 -3.5000 -0.5000 2.3333 -1.3333 1.6667 0.8333 -1.3333 -2.8333 -5.1667 -4.5000 0.3333 2.0000 -1.3333 -2.6667 -1.3333 -0.5000
If you really truly want the reference array to be expanded to 6x21, you can do this instead:
rvalue = repmat([-9; -6; -3; 3; 6; 9],[1 21]);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!