現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
how can i convert an integer to an array in this function?
12 ビュー (過去 30 日間)
古いコメントを表示
Zaza
2013 年 3 月 31 日
function a=get_array_num(n)
end
requirments:
1.no loops,if,recurion or logical operatos
2.no num2str or str2num
3.length_of(n)=number of digits in "n" (help function)
i think maybe logspace is useful here...but how?
8 件のコメント
Walter Roberson
2013 年 3 月 31 日
That does not define any return value "a".
The only way that you can meaningfully have length(n) be the same as the number of digits in n, is if n is a scalar value (length 1) with a single digit.
Zaza
2013 年 3 月 31 日
function r = length_of(n)
if n < 10
r = 1 ;
else
r = 1 + length_of(n/10) ;
end
end
Image Analyst
2013 年 3 月 31 日
編集済み: Image Analyst
2013 年 3 月 31 日
That would mean your "a" (now called "r") is an array of 1 - not really much of an array. Besides - that code uses recursion, which is not allowed.
Zaza
2013 年 3 月 31 日
true
i forgot to mention that "length_of(n)" is recursive regardless of "get_array_num(n)"
Walter Roberson
2013 年 4 月 1 日
Why is length_of(0) 1 instead of 0? Why is length_of(-23) 1 instead of 3?
回答 (1 件)
Image Analyst
2013 年 3 月 31 日
How about
a = zeros(n);
or
a = n * ones(1, 10);
or something similar? There is an infinite variety of arrays you could make that would full those requirements, though requirement #3 is not well explained at all (no idea what it even means).
16 件のコメント
Walter Roberson
2013 年 3 月 31 日
I see nothing in the requirements that the output must have any relationship to the input.
Image Analyst
2013 年 3 月 31 日
True, so there are even more infinite ways to answer. This is so poorly described, even with additional comments, that I don't even know how to help anymore.
Image Analyst
2013 年 4 月 1 日
strN = num2str(n) % Convert to string.
a = strN - '0' % Convert characters to separate numbers.
Image Analyst
2013 年 4 月 1 日
What a stupid requirement. Then use sprintf() as the "loophole":
strN = sprintf('%d',n)
a = strN - '0'
Image Analyst
2013 年 4 月 1 日
I did it in 5 lines with a for loop, rem(), floor(), and finally fliplr() to reverse the last digits.
- for
- call rem
- reassign n
- end
- call fliplr
I'm sure you don't want me to just give you the answer outright (because you could be considered as not doing your own work) so give that a try.
Image Analyst
2013 年 4 月 1 日
Ha! I give up. Who wants to work like that? I hate it when they say to use MATLAB but don't let you use any of the power of it. I don't see the point. I don't see any way, off the top of my head, to march along the digits of your integer if you can't use strings, loops of any type, or recursion if your integer is of unknown length. Of course if you know it's always 4 digits, then you can just write the contents of the for loop 4 times. Good luck with it though. If something strikes me, I'll post a hint.
Walter Roberson
2013 年 4 月 1 日
I can do it in one smallish line, once given the length_of function. Loops may have been prohibited but ":" has not been.
Jan
2013 年 4 月 2 日
@Zaza: It consumed some time and energy to bring you to post an explicit example. We get some parts of the problem distributed to the question and over several comments. Therefore an efficient answer is impossible.
Please edit the original question and insert all available information. Then show us, what you have tried so far, because of course we are not going to solve your homework: you couldn't submit it anymore without cheating!
参考
カテゴリ
Help Center および File Exchange で Function Creation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
アジア太平洋地域
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)