how to predefine a matrix with one unknown dimension

143 vues (au cours des 30 derniers jours)
Eliraz Nahum
Eliraz Nahum le 12 Oct 2018
Déplacé(e) : Dyuman Joshi le 18 Oct 2023
hey everybody I am interested in predefining a matrix with unknown dimension. I know that the matrix should have 15 rows (number of iterations), but the number of columns (time stages) depends on a stop condition in the code, and hence can't be known in advance. can I create a general definition like v=[]; but for a matrix with one known dimension? In addition, is it possible to create a zero matrix with 1 unknown dimension?
thanks!
  1 commentaire
Eliraz Nahum
Eliraz Nahum le 13 Oct 2018
Déplacé(e) : Dyuman Joshi le 18 Oct 2023
Thank you all. Both ways are good and I even learned some new elegant things.

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 12 Oct 2018
Modifié(e) : Matt J le 12 Oct 2018
No, all the dimensions of a matrix must be explicitly defined. What I often do in those cases is pre-define a cell array,
C=cell(1,N)
with a conservatively large N. Then, as the loop runs, accumulate the data in a sequence of cells,
for i=1:N
C{i}=next_column;
if stop_condition
break;
end
end
Later, you can just assemble the cells into a matrix with,
A=cell2mat(C);
and the empty cells will be ignored.

Plus de réponses (1)

Image Analyst
Image Analyst le 13 Oct 2018
Just define a matrix that's well large enough to hold all your numbers, like a few million elements or whatever.
v = zeros(15, 1000000);
Then do whatever you need to do assigning rows and columns in v, then, if you've kept track of the max column number, you can simply crop the array
v = v(:, maxColumn);

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by