To make vector compatible to matrix.

1 view (last 30 days)
I have code for disease prediction in which It is equation w = (H'*H+l1*eye(nh,nh))\(H'*Data.y);in which data.y is not compatible for matrix multiplication. As it is vector of labels, either regression or classification labels (+1,-1) so i converted it to matrix by using Data.y=vec2mat(Data.y,297) to make it compatible but again there is same error of inner matrix dimension. What should i do to make it compatible.It is in trainRELM.m . trainRELM is function which is called in main.m I have attched the code and dataset.

Accepted Answer

Roger Stafford
Roger Stafford on 20 Apr 2017
If Data.y is a vector, to make the matrix multiplication H'*Data.y valid, it must be a column vector with the same number of elements as there are columns in H’. That is, size(Data.y) must equal [size(H’,2),1].
  2 Comments
tejasvee
tejasvee on 20 Apr 2017
but H' is of size 100*303 due to size of data set. i have checked the size of H' using size(H'). or you want to tell me that size(H') and size of (Data.y) must be equal.
Roger Stafford
Roger Stafford on 20 Apr 2017
Edited: Jan on 20 Apr 2017
No, I didn’t say that. What I have said is that size(Data.y) must equal [size(H’,2),1]. That means that Data.y must have the same number of rows as H’ has columns. Otherwise the expression H'*Data.y will be invalid. Check the site
I also stated that Data.y should have one column because earlier you said that it was a vector. For the purpose of making the above multiplication valid it can actually have any number of columns.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 3 May 2019
y is read from columns O P Q R S of the csv file. Those columns are all empty in the supplied csv file so requesting them would temporarily fill them with NaN. If you were using xlsread it would trim away all leading and trailing rows and columns that are all nan which would leave you with emptiness. With csvread it will probably return a 240 x 5 column of nan. However as Roger explained the code can only work when y is a column vector - in this case a column vector with 240 rows .
In the larger scheme even if the number of rows and columns were correct your target information would all be nan and it is not possible to train your classes when you do not have target information.

Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!