From .csv to .mat, matrix indexing
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Madan Kumar Y
le 25 Sep 2019
Commenté : Madan Kumar Y
le 25 Sep 2019
Hello,
I am trying to convert a .CSV file to .mat in matlab. I have attached the .CSV file. In the file the columns D,E,F,G which is marked has values like 8,2,7,13 which should belong to a field name called labelfacegrid. Here's the code i have written so far.
clc;
close all;
clear all;
T = readtable('E:/Metadata_create.csv','ReadVariableNames',false);
frameIndex = T{:,1};
labelDotXCam = T{:,2};
labelDotYCam = T{:,3};
labelFaceGrid0 = T{:,4};
labelFaceGrid1 = T{:,5};
labelFaceGrid2 = T{:,6};
labelFaceGrid3 = T{:,7};
labelRecNum = T{:,8};
labelTest = T{:,9};
labelTrain = T{:,10};
labelVal = T{:,11};
save('E:/mymat.mat','frameIndex', 'labelDotXCam', 'labelDotYCam', 'labelFaceGrid0','labelFaceGrid1','labelFaceGrid2','labelFaceGrid3', 'labelRecNum', 'labelTest', 'labelTrain', 'labelVal')
As seen above i have put variable name as labelFaceGrid0,labelFaceGrid1,labelFaceGrid2,labelFaceGrid3 for now but in reality i want it to be a single variable with 4 different values like as in csv file the columns D,E,F,G. What code changes should i make to accomodate those four values for a single variable or a field name. I am stuck. Thank you.

4 commentaires
Ankit
le 25 Sep 2019
Modifié(e) : Ankit
le 25 Sep 2019
Hello Madan,
first recommendations is to avoid using clear all;
You can save your variables in structure format as mentioned below. Is it that what you are looking for?
clc;
close all;
T = readtable('E:/Metadata_create.csv','ReadVariableNames',false);
frameIndex = T{:,1};
labelDotXCam = T{:,2};
labelDotYCam = T{:,3};
labelFaceGrid.a = T{:,4};
labelFaceGrid.b = T{:,5};
labelFaceGrid.c = T{:,6};
labelFaceGrid.d = T{:,7};
labelRecNum = T{:,8};
labelTest = T{:,9};
labelTrain = T{:,10};
labelVal = T{:,11};
save('E:/mymat.mat','frameIndex', 'labelDotXCam', 'labelDotYCam', 'labelFaceGrid', 'labelRecNum', 'labelTest', 'labelTrain', 'labelVal')
Thanks
Ankit
Réponse acceptée
Guillaume
le 25 Sep 2019
Not exactly sure what you're asking, is it simply?
labelFaceGrid = T{:, 4:7}; %extract column 4 to 7 as a matrix
6 commentaires
Ankit
le 25 Sep 2019
Modifié(e) : Ankit
le 25 Sep 2019
@Guillaume he is saving the *.mat file as follows I just change the name from labelFaceGrid to labelFaceGrid1 (see below)
save('E/mymat.mat','frameIndex', 'labelDotXCam', 'labelDotYCam', 'labelFaceGrid1', 'labelRecNum', 'labelTest', 'labelTrain', 'labelVal')
Following error matlab throws:
Error using save
Variable 'labelFaceGrid1' not found.
as Mr. Guillaume mentioned could you please post your code and error please?
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur C Shared Library Integration dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!