cell2mat has a very specific condition
2 ビュー (過去 30 日間)
古いコメントを表示
hey all! so i've been playing with cells and structures etc.
i have a structure 'students' with fields:name,id,grades.
in grades i have a nx1 cell array where n is the number of grades per students. the grades are in string and not numbers.
i wanted to calculate every student's avarage. i used a for loop and cell2mat and it gave me an nx2 matrix of char objects.
the problem is the last students, one of his grades is 100 which is 3 letters instead of 2 and because of that cell2mat has no idea how to compensate for it.
i know i could have made things easier for myself if i made a more normal structure in the first place but i'm too far in the excercise now lol.
any idea how to work with this?
2 件のコメント
DGM
2022 年 6 月 20 日
Show us what code you have and provide an example of your data so that we can see what's going on.
採用された回答
dpb
2022 年 6 月 20 日
Indeed, you made dereferencing the data about as hard as could by putting it into cell array -- a struct could/can hold an ordinary array; it shouldn't be too hard to change the code to make the grades arrays numeric to start with...but one way to your objective here is\
>> arrayfun(@(i)mean(str2double(students(i).grades)),1:numel(students),'UniformOutput',true)
ans =
84.0000 98.5000 86.1667 57.3333 87.2500
>>
2 件のコメント
dpb
2022 年 6 月 20 日
Will become familiar idiom (along with the companion functions for cell arrays and sructure fields) with time...
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Startup and Shutdown についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!