Ttest with two matrix

7 views (last 30 days)
Mimmi Håkansson
Mimmi Håkansson on 24 Apr 2019
Answered: Samayochita on 22 Apr 2025
Hi!
I have two datasets, both with 5 cell lines and 20 000 genes (20000x5). I now want to compare these two, since one is a control group and one has been treated with drugs. My plan was to use ttest, but it is not working. A error messages comes up that says:
Undefined operator '-' for input arguments of type 'table'.
Error in ttest (line 71)
x = x - m;
I have load up the two excel files by using spreadsheetDatastore, could that be the problem?
Thankful for any help :)

Answers (1)

Samayochita
Samayochita on 22 Apr 2025
Hi Mimmi,
It appears that the error is occurring because the “ttest” function in MATLAB expects numeric arrays as input, whereas the data is currently in the form of a table, which is the typical output format from “spreadsheetDatastore.
To resolve this, the table data can be converted into a numeric array using the table2array function before passing to ttest.
Assuming the data is loaded as:
ds1 = spreadsheetDatastore('control.xlsx');
ds2 = spreadsheetDatastore('treated.xlsx');
Read the data as:
tbl1 = read(ds1);
tbl2 = read(ds2);
Now, convert the tables to numeric arrays (if the tables only contain numeric data):
X = table2array(tbl1);
Y = table2array(tbl2);
Finally, apply ttest by passing X and Y to the ttest” function.
For more information on the functions mentioned above, please refer to following the documentation links:

Tags

Products

Community Treasure Hunt

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

Start Hunting!