double zero 00 fill in array
16 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi All,
Just wondering how I can fill an column in a matrix with 00. Matlab automatically truncates to 0. I have the doublezero sprintf but this obviously is in the wrong format, i'd probably have to get it in integer form before I can insert it in an array called sec. But getting it in integer format truncates the value to a single 0. I looked around in the different formats but can't figure out which one to use.
doublezero = sprintf('%02d',0);
sec(1:60,1) = doublezero ;
str2doublezero = str2double(doublezero)
Thanks!
1 Commento
Stephen23
il 5 Giu 2018
Modificato: Stephen23
il 5 Giu 2018
Numeric data classes do not store any formatting information whatsoever, so it is not possible to store leading zeros like this in a numeric array. As far as all numeric classes are concerned, 0==00==00000...
You could either store a char/string, or store the required number of digits in a separate variable. Note that storing numeric values as text usually makes code very complex and inefficient.
Risposta accettata
Jan
il 5 Giu 2018
This is not possible. If sec should be a numerical array, that 00 is not meaningful - there is no such number and leading zeros are removed in general. Two zeros are meaningful as a string only. This is either a modern string object or a vector of type char:
c = '00';
s = "00"
If you need an array, this can be implemented as string vector, as char matrix or cell string: a cell containing char vectors:
sec = cell(60, 1);
sec(:) = {'00'}
But most likely storing seconds as numbers is much more useful. Then you insert the leading zero by sprintf only, if you want to convert it for a text output. Computations are much easier with numerical data.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!