이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
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!오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 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 (한국어)