How can I remove empty cells from struct data?
57 ビュー (過去 30 日間)
古いコメントを表示
How can I remove empty cells from struct data?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1346759/image.png)
I have tried to use this but it didn't work.
Charge(Charge==0) = [];
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1346764/image.png)
2 件のコメント
Oguz Kaan Hancioglu
2023 年 4 月 5 日
You need to build for loop to check the filed of struct is empty or not. You can use this code.
k = 1;
for i = 1:length(Charge)
if ~isempty(Charge(i).Voltage_measured)
ChargeNew(k).Voltage_measured = Charge(i).Voltage_measured;
ChargeNew(k).Current_measured = Charge(i).Current_measured;
ChargeNew(k).Temperature_measured = Charge(i).Temperature_measured;
ChargeNew(k).Current_charge = Charge(i).Current_charge;
ChargeNew(k).Voltage_charge = Charge(i).Voltage_charge;
ChargeNew(k).Time = Charge(i).Time;
k = k + 1;
end
end
採用された回答
Jon
2023 年 4 月 5 日
You can adapt @Stephen23's approach given in https://www.mathworks.com/matlabcentral/answers/613956-how-to-check-if-a-element-of-a-struct-is-empty
fun = @(s) all(structfun(@isempty,s));
idx = arrayfun(fun,Charge)
Charge(idx)=[]; % remove the empty elements
3 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!