how to make a function that return cell array of the month
Ältere Kommentare anzeigen
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 Kommentare
Walter Roberson
am 2 Jun. 2015
A(i,:)={'June', i, DateName(i,:)}
Muhammad Usman Saleem
am 2 Jun. 2015
Walter Roberson
am 2 Jun. 2015
'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
am 4 Jun. 2015
Bearbeitet: Walter Roberson
am 4 Jun. 2015
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
am 4 Jun. 2015
Your "function" defines the output as going to the variable named "m" but you never assign anything to that variable.
Muhammad Usman Saleem
am 5 Jun. 2015
Christos Vyzantios
am 5 Jun. 2015
Bearbeitet: Walter Roberson
am 8 Jun. 2015
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
am 7 Jun. 2015
Akzeptierte Antwort
Weitere Antworten (3)
Jan
am 2 Jun. 2015
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 Kommentare
Muhammad Usman Saleem
am 5 Jun. 2015
Muhammad Usman Saleem
am 5 Jun. 2015
Jan
am 6 Jun. 2015
Then please be so kind and post, which error message you see. The code runs fine on my machine.
Muhammad Usman Saleem
am 7 Jun. 2015
Muhammad Usman Saleem
am 7 Jun. 2015
Walter Roberson
am 8 Jun. 2015
Bearbeitet: Walter Roberson
am 8 Jun. 2015
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
am 8 Jun. 2015
abdo desoki
am 6 Jun. 2015
0 Stimmen
change that variable A with m and it will run correctly .
Luxman Maheswaran
am 8 Jun. 2015
0 Stimmen
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 Kommentar
Walter Roberson
am 8 Jun. 2015
The second output of weekday() is a string.
Kategorien
Mehr zu Dates and Time finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!