how to make a function that return cell array of the month
이전 댓글 표시
Hi every one;
I am going to attempt that query:
Write a function called June2015 that returns a cell array of dimensions 30-by-3, whose rows correspond to the days of June, 2015. The three elements of each row must be set as follows:
• The first element refers to the string 'June' (uppercase ‘J’). • The second element refers to a scalar of type double that equals the date (1 through 30). • The third element refers to the three-letter abbreviation of the day chosen from this list: 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'.
For example, here is a call of the function followed by a command that shows the eleventh element of the cell array that is returned by the function:
>> m = June2015;
>> m(11,:)
ans =
'June' [11] 'Thu'
I am using that code
function m = June2015
A=cell(30,3)%declar cell array of 30 by 3
for i = 1:30
[DateNumber, DateName] = weekday(datenum([2015 6 i]));% making the value of DateNume for DateNumber
%and loop run number of rows in cell array
for j=1:3% loop run for column of cell array
A(i,:)={'June', i, 'DateName'}
end
end
end
but in testing i am getting that error
Your solution is _not_ correct.
Guide me about my corrections.. thanks in advance
댓글 수: 8
Walter Roberson
2015년 6월 2일
A(i,:)={'June', i, DateName(i,:)}
Muhammad Usman Saleem
2015년 6월 2일
Walter Roberson
2015년 6월 2일
'DateName(i,:)' means to put in the literal string 'DateName(i,:)', not what is contained in DateName(i,:)
Oh I see, I thought you were pre-calculating all of the date names. In that case, just
A(i,:) = {'June', i, DateName};
and your "for j" loop is useless
Christos Vyzantios
2015년 6월 4일
편집: Walter Roberson
2015년 6월 4일
I made some small changes but the grader didnt accept :(
function m = June2015 %#ok<STOUT>
A=cell(30,3);
for i = 1:30
[~, DateName] = weekday(datenum([2015 6 i]));% making the value of DateNume for DateNumber
%and loop run number of rows in cell array
A(i,:) = {'June', i, DateName};
end
end
Walter Roberson
2015년 6월 4일
Your "function" defines the output as going to the variable named "m" but you never assign anything to that variable.
Muhammad Usman Saleem
2015년 6월 5일
Christos Vyzantios
2015년 6월 5일
편집: Walter Roberson
2015년 6월 8일
I transform liitle the code but the problem exist
function m = June2015 %#ok<STOUT>
A=cell(30,3);%declar cell array of 30 by 3
for i = 1:30 %#ok<ALIGN>
[~, DateName] = weekday(datenum([2015 6 i]));
A(i,:) = {'June', i, DateName};
end
end
Muhammad Usman Saleem
2015년 6월 7일
채택된 답변
추가 답변 (3개)
Jan
2015년 6월 2일
The loop over j is not required. Simply omit it.
The 3rd column of A should not be the string 'DateName(i,:)', but the contents of the variable DateName. So use:
A(i,:) = {'June', i, DateName} ;
댓글 수: 7
Muhammad Usman Saleem
2015년 6월 5일
Muhammad Usman Saleem
2015년 6월 5일
Jan
2015년 6월 6일
Then please be so kind and post, which error message you see. The code runs fine on my machine.
Muhammad Usman Saleem
2015년 6월 7일
Muhammad Usman Saleem
2015년 6월 7일
Walter Roberson
2015년 6월 8일
편집: Walter Roberson
2015년 6월 8일
function A = June2015
A=cell(30,3)%declar cell array of 30 by 3
for i = 1:30
[DateNumber, DateName] = weekday(datenum([2015 6 i]));
% making the value of DateNume for DateNumber and loop run number of rows in cell array
[A{i,:}] = deal('June', i, DateName) ;
end
end
Muhammad Usman Saleem
2015년 6월 8일
abdo desoki
2015년 6월 6일
0 개 추천
change that variable A with m and it will run correctly .
댓글 수: 1
Muhammad Usman Saleem
2015년 6월 7일
Luxman Maheswaran
2015년 6월 8일
0 개 추천
You have to convert the number of DateName to a string such as 'Thu' I have checked it with a grader and it is correct
댓글 수: 1
Walter Roberson
2015년 6월 8일
The second output of weekday() is a string.
카테고리
도움말 센터 및 File Exchange에서 Dates and Time에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!