how to predefine a matrix with one unknown dimension

148 Ansichten (letzte 30 Tage)
Eliraz Nahum
Eliraz Nahum am 12 Okt. 2018
Verschoben: Dyuman Joshi am 18 Okt. 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 Kommentar
Eliraz Nahum
Eliraz Nahum am 13 Okt. 2018
Verschoben: Dyuman Joshi am 18 Okt. 2023
Thank you all. Both ways are good and I even learned some new elegant things.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Matt J
Matt J am 12 Okt. 2018
Bearbeitet: Matt J am 12 Okt. 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.

Weitere Antworten (1)

Image Analyst
Image Analyst am 13 Okt. 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);

Tags

Produkte


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by