Insufficient number of outputs from right hand side of equal sign to satisfy assignment.

6 views (last 30 days)
I want to assign an array of numbers to a corresponding list name. Or in another word, I want each element of the left array to be assigned to a variable name on the right. The number of element in both arrays are the same.
I am new in Matlab. I dont know why I get this error. Any help would be very appriciated.
------------------------------------
CEST = [2022,10, 11, 2, 0, 0]
UTC = CEST-[0, 0, 0, 2, 0, 0]
[yyyy, mm, dd, hour, minute, second]= UTC
Error: line 3, Insufficient number of outputs from right hand side of equal sign to satisfy assignment.
  2 Comments

Sign in to comment.

Accepted Answer

Voss
Voss on 26 Nov 2022
CEST = [2022,10, 11, 2, 0, 0];
UTC = CEST-[0, 0, 0, 2, 0, 0];
This is what you intend to do:
yyyy = UTC(1);
mm = UTC(2);
dd = UTC(3);
hour = UTC(4);
minute = UTC(5);
second = UTC(6);
% display the variables' values
yyyy, mm, dd, hour, minute, second
yyyy = 2022
mm = 10
dd = 11
hour = 0
minute = 0
second = 0
Or, to do the same thing in a way more like what you had in mind:
temp = num2cell(UTC);
[yyyy, mm, dd, hour, minute, second] = deal(temp{:})
yyyy = 2022
mm = 10
dd = 11
hour = 0
minute = 0
second = 0
  1 Comment
Mohammad Khan
Mohammad Khan on 27 Nov 2022
Thanks for the sugested solution. It gave me an idea and I solved my problem like this.
CEST = [2022,10, 11, 2, 0, 0];
UTC = CEST-[0, 0, 0, 2, 0, 0];
This was my function to convert Georgian Calender to Julian Calender.
function [jd,mdj] = gre2jd(yyyy,mm,dd,hour,minute,second);
Then I assigned the the above date to the entry varaible to my function like this.
[jd,mdj] = gre2jd(UTC(1),UTC(2),UTC(3),UTC(3),UTC(4),UTC(5),UTC(6));

Sign in to comment.

More Answers (0)

Categories

Find more on Dates and Time in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!