how to make a function that return cell array of the month
Mostra commenti meno recenti
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 Commenti
Walter Roberson
il 2 Giu 2015
A(i,:)={'June', i, DateName(i,:)}
Muhammad Usman Saleem
il 2 Giu 2015
Walter Roberson
il 2 Giu 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
il 4 Giu 2015
Modificato: Walter Roberson
il 4 Giu 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
il 4 Giu 2015
Your "function" defines the output as going to the variable named "m" but you never assign anything to that variable.
Muhammad Usman Saleem
il 5 Giu 2015
Christos Vyzantios
il 5 Giu 2015
Modificato: Walter Roberson
il 8 Giu 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
il 7 Giu 2015
Risposta accettata
Più risposte (3)
Jan
il 2 Giu 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 Commenti
Muhammad Usman Saleem
il 5 Giu 2015
Muhammad Usman Saleem
il 5 Giu 2015
Jan
il 6 Giu 2015
Then please be so kind and post, which error message you see. The code runs fine on my machine.
Muhammad Usman Saleem
il 7 Giu 2015
Muhammad Usman Saleem
il 7 Giu 2015
Walter Roberson
il 8 Giu 2015
Modificato: Walter Roberson
il 8 Giu 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
il 8 Giu 2015
abdo desoki
il 6 Giu 2015
0 voti
change that variable A with m and it will run correctly .
Luxman Maheswaran
il 8 Giu 2015
0 voti
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 Commento
Walter Roberson
il 8 Giu 2015
The second output of weekday() is a string.
Categorie
Scopri di più su Dates and Time in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!