Filter löschen
Filter löschen

How to save all outputs that are produced from each iteration in separated cell in one row of array and each row expresses an iteration then store it in one .mat file?

5 Ansichten (letzte 30 Tage)
How to save all the output from each iteration in one .mat file?
Suppose we have the following program and I want to save Pd , C , M that are produced from each iteration in separated cell in one row of array and each row expresses an iteration then store it in one .mat file named Cases.mat.
Pd=[] ;
[Pd{1:7}]=ndgrid([0.5,1]);
Pd=reshape( cat(8,Pd{:}) ,[],7);
Pd = Pd'
for j = 1:size(Pd,2)
Pd(:,j)
C = 5*Pd(:,j)
M = 3*Pd(:,j)
end
Can Anyone help me to achive this?

Akzeptierte Antwort

Stephen23
Stephen23 am 4 Mär. 2022
Pd = {};
[Pd{1:7}] = ndgrid([0.5,1]);
Pd = reshape(cat(8,Pd{:}),[],7).';
C = 5*Pd;
% M = your code is unclear
save('cases.mat','Pd','C')
  5 Kommentare
Stephen23
Stephen23 am 4 Mär. 2022
Bearbeitet: Stephen23 am 4 Mär. 2022
The most efficient approach is NOT to store them as separate variables, but to store the data in matrices/arrays.
If you are generating the data in a loop then you can use indexing to assign the data to those matrices, just like you would use indexing to get data out of a matrix. For example:
Pd = {};
[Pd{1:7}] = ndgrid([0.5,1]);
Pd = reshape(cat(8,Pd{:}),[],7).';
S = size(Pd);
C = nan(S); % preallocate!
M = nan(S); % preallocate!
for k = 1:S(2)
C(:,k) = 5*Pd(:,k); % presumably your calculation is more complex
M(:,k) = 3*Pd(:,k); % presumably your calculation is more complex
end
save('cases.mat','Pd','C','M')
Of course in this example the loop is not required, as my answer already showed.
If you still really really want to store the data as vectors then store them in two cell arrays.
M
M am 4 Mär. 2022
Thank you so much @Stephen , your second code is working properly on my original code.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Variables finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by