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

Stephen23
Stephen23 2018년 6월 5일
편집: Stephen23 2018년 6월 5일
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.

댓글을 달려면 로그인하십시오.

 채택된 답변

Jan
Jan 2018년 6월 5일

0 개 추천

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개)

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

제품

릴리스

R2016b

질문:

2018년 6월 5일

편집:

2018년 6월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by