フィルターのクリア

How to remove an element from a structure array using matfile handler

1 回表示 (過去 30 日間)
Abdurrehman
Abdurrehman 2018 年 7 月 27 日
編集済み: Walter Roberson 2018 年 7 月 28 日
Hi,
I am using following piece of code to remove an element from a structure array, but its not working please help
MatfileHandler.StructureArray(index,:)=[];
since the above wasn't working thus I used following statements.
AllElements = MatfileHandler.StructureArray; %loaded all elements in AllElements
AllElements(index,:)=[]; %Removed the required element
MatfileHandler.StructureArray = AllElements; %Resaving the AllElements to Actual Matfile
the above code works fine but it takes too much time especially when the size of structure is big. Please help me how to reduce time or remove element by using matfile handler, thanks.
  3 件のコメント
Abdurrehman
Abdurrehman 2018 年 7 月 27 日
MatfileHandler = matfile('filename.mat','Writable',true);
My Structure is 36x1 array with 12 fields consisting of cell and double data types
Abdurrehman
Abdurrehman 2018 年 7 月 28 日
Precisely speaking I had to say matfile object

サインインしてコメントする。

回答 (1 件)

Guillaume
Guillaume 2018 年 7 月 27 日
As documented in the limitations of matfile, it does not let you index into the fields of a structure. Therefore the only way is to do what you have done: load the whole structure, edit the structure and write it back.
  1 件のコメント
Abdurrehman
Abdurrehman 2018 年 7 月 28 日
Its takes around 1 minute to remove an element :-(

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by