how to replace double vectors from 0 to '000'

2 ビュー (過去 30 日間)
Mohamuud hassan
Mohamuud hassan 2015 年 5 月 14 日
コメント済み: Mohamuud hassan 2015 年 5 月 14 日
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

採用された回答

Stephen23
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
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'
Mohamuud hassan
Mohamuud hassan 2015 年 5 月 14 日
thank you stephen.

サインインしてコメントする。

その他の回答 (1 件)

Image Analyst
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
For more info, see FAQ: What is a cell array
  1 件のコメント
Mohamuud hassan
Mohamuud hassan 2015 年 5 月 14 日
編集済み: Mohamuud hassan 2015 年 5 月 14 日
i applied your idea but with new error: Cell contents assignment to a non-cell array object. E_extrac_pro{ex_loop2}=numbers(ex_loop2);

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by