Help with linear optimisation problem

Hi folks,
I'm looking to conduct a linear optimisation and was hoping for some help on the matter.
I have 56 columns of data, with 256 rows each; lets call this set A. I have another column of data, with 56 rows; lets call this set B. I essentially want to correlate each of the 256 values in each column of set A to a single value in set B; lets call this set C.
I want to know which of the 256 values across set C give the best correlation between sets A and B. In other words, which row in set A gives the best correlation to the corresponding value in set B, across all columns of set A.
Any help on this matter would be most appreciated!

 Respuesta aceptada

Matt J
Matt J el 25 de En. de 2022
Editada: Matt J el 25 de En. de 2022
Diffs=abs(reshape(B,1,1,[])-A);
d=min(Diffs,[],3);
[Arows,Acols]=find(d==min(d(:)));

11 comentarios

Teshan Rezel
Teshan Rezel el 25 de En. de 2022
@Matt J Hi, thanks for this! I'm just having an issue with the first line of your code as it says reshape doesn't work on tables...any ideas on how I can get around this please?
Matt J
Matt J el 25 de En. de 2022
You can use table2array to convert them to ordinary matrices.
@Matt J Thank you! I tried that but now it throws out this error, although my data is in tables, not cells!
Operator '-' is not supported for operands of type 'cell'.
Matt J
Matt J el 25 de En. de 2022
My solution assumes all variables are numeric matrices. If this isnt' the case for one/all of your variables, you need to convert them appropriately.
@Matt J I've made sure that all values in the tables are numeric, but it now says :
Error using tabular/reshape (line 216)
Undefined function 'reshape' for input arguments of type 'table'.
I'm not sure what's causing this now!
Matt J
Matt J el 25 de En. de 2022
Editada: Matt J el 25 de En. de 2022
I've made sure that all values in the tables are numeric
Again, they shouldn't be tables. They should be matrices. To convert tables to matrices, see table2array() which I mentioned earlier.
Teshan Rezel
Teshan Rezel el 31 de En. de 2022
@Matt J thanks for this. I'm really not sure what I'm doing wrong as I've tried running the code snippet you sent me. I've attached the table that I think might be causing the issues. May I please ask you to have a look and tell me what I'm doing wrong? Apologies for this!
Matt J
Matt J el 31 de En. de 2022
What about A?
Teshan Rezel
Teshan Rezel el 31 de En. de 2022
@Matt J apologies, I've attached it as well!
Matt J
Matt J el 31 de En. de 2022
Editada: Matt J el 31 de En. de 2022
A=load('inputVariables').sum_Coke;
B=load('inputVariables').CRI;
B=B.CRI;
whos A B
Name Size Bytes Class Attributes A 256x54 110592 double B 54x1 432 double
Diffs=abs(reshape(B,1,1,[])-A);
d=min(Diffs,[],3);
[Arows,Acols]=find(d==min(d(:)));
whos Arows Acols
Name Size Bytes Class Attributes Acols 84x1 672 double Arows 84x1 672 double
Teshan Rezel
Teshan Rezel el 31 de En. de 2022
@Matt J outstanding, thank you!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2021b

Preguntada:

el 25 de En. de 2022

Comentada:

el 31 de En. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by