how to replace double vectors from 0 to '000'
2 ビュー (過去 30 日間)
古いコメントを表示
hello every body; i am dealing with string and number how i can solve this problem: "In an assignment A(I) = B, the number of elements in B and I must be the same." "E_extrac_pro(ex_loop2)='000';" where numbers vector are double and contains:
numbers=[202;0 ;20;0;0;1013;10];
for ex_loop2=1:size(numbers)
if(numbers(ex_loop2)==0)
E_extrac_pro(ex_loop2)='000';
else
E_extrac_pro(ex_loop2)=numbers(ex_loop2);
end
end
0 件のコメント
採用された回答
Stephen23
2015 年 5 月 14 日
編集済み: Stephen23
2015 年 5 月 14 日
Why bother with the loop at all?:
>> numbers=[202;0 ;20;0;0;1013;10];
>> X = num2str(numbers,'%04g')
X =
0202
0000
0020
0000
0000
1013
0010
And if the output must be a cell array:
>> cellstr(X)
ans =
'0202'
'0000'
'0020'
'0000'
'0000'
'1013'
'0010'
3 件のコメント
Stephen23
2015 年 5 月 14 日
編集済み: Stephen23
2015 年 5 月 14 日
Then you can adjust the format string to get the desired result:
>> X = num2str(numbers,'%03g')
X =
202
000
020
000
000
1013
010
>> strtrim(cellstr(X))
ans =
'202'
'000'
'020'
'000'
'000'
'1013'
'010'
The num2str documentation clearly explains these formatting options. Or you could put it in an arrayfun with sprintf:
>> arrayfun(@(n)sprintf('%03g',n), numbers, 'UniformOutput',false)
ans =
'202'
'000'
'020'
'000'
'000'
'1013'
'010'
その他の回答 (1 件)
Image Analyst
2015 年 5 月 14 日
To mix strings and numbers in the same array, you'll have to use a cell array:
E_extrac_pro = cell(1, size(numbers));
for ex_loop2=1:size(numbers)
if(numbers(ex_loop2)==0)
E_extrac_pro{ex_loop2}='000';
else
E_extrac_pro{ex_loop2}=numbers(ex_loop2);
end
end
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!