Transform column data to m x n matrix
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Maneesh
el 17 de Oct. de 2018
Comentada: Maneesh
el 17 de Oct. de 2019
Hi, I have 3 column data and want to transform it into an m x n matrix. Please see the attached file for an example.
0 comentarios
Respuesta aceptada
Andrei Bobrov
el 18 de Oct. de 2018
OriginalData = readtable('Path_to_your_file\DataTransformation.xlsx',...
'Range','A3:C26',...
'ReadVariableNames',true);
[gr,G] = findgroups(OriginalData.Key2);
A = accumarray([gr,(1:numel(gr))'],OriginalData.values);
TransformedData = [[{nan};G],num2cell([OriginalData.Key1';A])];
Más respuestas (3)
Kevin Chng
el 17 de Oct. de 2018
Editada: Kevin Chng
el 17 de Oct. de 2018
Hi
The best solution is :
Drag your excel and drop it in MATLAB command window.
It will pop out a app for you to configure your excel input.
Since there are char in 2nd column, therefore I stored them in table data type instead of matrix.
opts = spreadsheetImportOptions("NumVariables", 3);
opts.Sheet = "Sheet1";
opts.DataRange = "A4:C29";
opts.VariableNames = ["Key1", "Key2", "values"];
opts.VariableTypes = ["double", "categorical", "double"];
opts = setvaropts(opts, 2, "EmptyFieldRule", "auto");
DataTransformation = readtable("DataTransformation.xlsx", opts, "UseExcel", false);
clear opts
Code above is generated through the application.
However, I saw there are other data or table in your excel sheet, if you want to import them in other table, just repeat the method what i say : Drag the excel sheet and drop it in MATLAB command window, select the range and data type you wanted to export them.
2 comentarios
Kevin Chng
el 18 de Oct. de 2018
Read table from Original Data, then write it to Transformed Data according to its pattern?
Image Analyst
el 17 de Oct. de 2018
Have you tried reshape()?
arraymxn = reshape(originalMatrix, m, n);
madhan ravi
el 18 de Oct. de 2018
Editada: madhan ravi
el 18 de Oct. de 2018
[num,txt,raw]=xlsread('DataTransformation.xlsx')
[m,n]=size(num)
num(isnan(num))=[]
data=reshape(num,m,n) %m and n can be your choice but make sure m times n == number(num)
3 comentarios
Ver también
Categorías
Más información sobre Tables en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!