From .csv to .mat, matrix indexing

조회 수: 6 (최근 30일)
Madan Kumar Y
Madan Kumar Y 2019년 9월 25일
댓글: Madan Kumar Y 2019년 9월 25일
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.
csv.PNG
  댓글 수: 4
Madan Kumar Y
Madan Kumar Y 2019년 9월 25일
Hey Walter,
looks like mergevars isn't supported in the version of matlab i have that is R2014a. Any other alternatives??.
Thanks,
Madan
Ankit
Ankit 2019년 9월 25일
편집: Ankit 2019년 9월 25일
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

댓글을 달려면 로그인하십시오.

채택된 답변

Guillaume
Guillaume 2019년 9월 25일
Not exactly sure what you're asking, is it simply?
labelFaceGrid = T{:, 4:7}; %extract column 4 to 7 as a matrix
  댓글 수: 6
Ankit
Ankit 2019년 9월 25일
편집: Ankit 2019년 9월 25일
@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?
Madan Kumar Y
Madan Kumar Y 2019년 9월 25일
Hey Guillaume,
Gracias, it worked. There was a spelling mistake, my bad :/ .
Hey ankit,
Thanks for the suggestions, it was helpful.
Thanks,
Madan

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 C Shared Library Integration에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by