Convert cell char array With Column in Table form MATLAB

조회 수: 9 (최근 30일)
Hammad Younas
Hammad Younas 2023년 2월 2일
댓글: Hammad Younas 2023년 2월 6일
Hello. I have import Data from website. I need to convert the Char array in Table with Values in Each Column
For Example In the following data I have 2x8 cell. The first Cell Predicted Class is the Column name and Cat is the Value.
The second Cell in first will be Column name Maximum, Minimum and Mean Value corresponding to there Values.
The Third Cell in first Row Predicted Class is the Column name and Fighter is the Value. The fourth Cell Fighter Levels, Fighter Values, Maximum, Minimum and Mean Value
The first row is C1 is the first Class and the 2nd row is C2 is the Second Class so it should be in loop to save the data for multiple classes.
Can anybody help me with that.

답변 (1개)

dpb
dpb 2023년 2월 2일
편집: dpb 2023년 2월 2일
This is pretty simple with the newer string facilities -- as an example, for the first variable, use something like
animal=extractAfter(DatasetWebsite(:,1),'Animal: ');
It should be obvious how to proceed with the remainder; the one with the multiple values will need only slightly more complicated logic although here's a place to illustrate another new(ish) feature so...
>> extract(DatasetWebsite(:,2),digitsPattern)
ans =
2×3 cell array
{'1000'} {'1000'} {'1000'}
{'1000'} {'1000'} {'1000'}
>>
and then just wrap the latter inside
>> str2double(ans)
ans =
1000.00 1000.00 1000.00
1000.00 1000.00 1000.00
>>
and you've got the numeric array. This could be one line of code, of course...
statistics=str2double(extract(DatasetWebsite(:,2),digitsPattern));
  댓글 수: 7
dpb
dpb 2023년 2월 3일
Well, show us what you tried...
Hammad Younas
Hammad Younas 2023년 2월 6일
@dpb Here is the following code i have tried
% Split the data by the delimiter ','
splittedData = split(data,',');
% Get the number of rows and columns from the splitted data
[rows,cols] = size(splittedData);
% Initialize a cell array to store the table data
tableData = cell(rows/2, cols/2);
% Loop through the splitted data and store the values in the tableData cell array
for i = 1:2:rows
for j = 1:2:cols
tableData{(i+1)/2, (j+1)/2} = splittedData{i,j};
end
end
% Convert the values in the tableData cell array to a table
table = cell2table(tableData);
% Convert the values in the table to numeric if possible
table.Variables = str2double(table{:,:});

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

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by