Info

This question is closed. Reopen it to edit or answer.

How can i store data in a cell array with single row and few number of columns?

1 view (last 30 days)
Assuming i want to store calculations from a structure array using for loop of size 20 which is equvalent to the number of fields in my structure array.
How can i represent my calculation in cell array ACC{} of a single row and 20 columns?
for a=1:20
ACC{a,1}=Pcount{a,1}.A/length(Pseq)
ACC{a,1}=Pcount{a,1}.R/length(Pseq)
ACC{a,1}=Pcount{a,1}.N/length(Pseq)
ACC{a,1}=Pcount{a,1}.D/length(Pseq)
ACC{a,1}=Pcount{a,1}.C/length(Pseq)
ACC{a,1}=Pcount{a,1}.Q/length(Pseq)
ACC{a,1}=Pcount{a,1}.E/length(Pseq)
ACC{a,1}=Pcount{a,1}.G/length(Pseq)
ACC{a,1}=Pcount{a,1}.H/length(Pseq)
ACC{a,1}=Pcount{a,1}.I/length(Pseq)
ACC{a,1}=Pcount{a,1}.L/length(Pseq)
ACC{a,1}=Pcount{a,1}.K/length(Pseq)
ACC{a,1}=Pcount{a,1}.M/length(Pseq)
ACC{a,1}=Pcount{a,1}.F/length(Pseq)
ACC{a,1}=Pcount{a,1}.P/length(Pseq)
ACC{a,1}=Pcount{a,1}.S/length(Pseq)
ACC{a,1}=Pcount{a,1}.T/length(Pseq)
ACC{a,1}=Pcount{a,1}.W/length(Pseq)
ACC{a,1}=Pcount{a,1}.Y/length(Pseq)
ACC{a,1}=Pcount{a,1}.V/length(Pseq)
end

Answers (1)

per isakson
per isakson on 3 May 2020
Pre-allocate ACC before the for-loop
ACC = cell( 1, 20 );
replace all ACC{a,1} by ACC{a}
  7 Comments
per isakson
per isakson on 3 May 2020
We posted comments simultaneously.
In your for-loop, which I proposed, the twenty statements overwrite ACC{a}. It's only the value of the last statement that persists.
It's a bit difficult to understand snippets of code with a lot of cell arrays, since the cells may contain anything.

Community Treasure Hunt

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

Start Hunting!