How would you plot an A vs B graph,where A and B are columns in Excel such as
A
Red
Green
Blue
and
B
1:00 AM
2:00 AM
3:00 AM
for 3*3 graphs I use
set(gca,'XTick',1:3);
set(gca,'XTickLabel',{'Red','Green','Blue'});
set(gca,'YTick',1:3);
set(gca,'YTickLabel',{'1:00 AM','2:00 AM','3:00 AM'});
However manual entering for 1000*1000 would be a mess.
So my question is:
How do I convert values Red Green Blue from column A as {'Red','Green','Blue'}? (in order to use them in set(gca,'XTickLabel'...)
I tried using
color = xlsread(fileName, 'A1:A3');
but it didn't convert the data into the right format.
Any help is appreciated.
The second output argument of xlsread contains text data. The first contains only numerical:
>> [nums,colors,raw] = xlsread('colorData.xlsx','A1:A3');
>> colors
colors =
'Red'
'Green'
'Blue'
UPDATE: The times read by xlsread are in Excel's serial date format (a numerical representation). They can be converted to a string with the time using datestr.
>> nums
nums =
0.0417
0.0833
0.1250
>> datestr(nums)
ans =
1:00 AM
2:00 AM
3:00 AM
These are actually dates, using Jan. 1 1900 as time zero. So, but giving just a time, it a number assuming this day. However, MATLAB uses Jan-1-0000, so if you have dates as well as times, convert them using datestr(t + datenum('30-Dec-1899')), where t is the numerical value with the serial date number.
Related
I have tried every which way to format cells to subtract the result from time for instance the formula in the cell = 11(this is 11 minutes) I want to take that result minus 8:00:00 to give me 7:49:00 but it doesn't work the result is ####### no matter how big I make the cell. And if I format the cells with the formula to custom [m]:ss then the value changes.
Sample of the Worksheet:
I want Y2 = X3-W3 in a time format.
So, if A1=11
Then in some other cell, (B1 in this example): =TIME(,A1,)
Then subtract from the cell with 8:00:00. (If it's C1...:)
=C1-B1
That will give you the time you want.
Info: The main thing is that you have to tell Excel that your cell with the "11" in it, is minutes. By using the =TIME(,A1,) you will get the value of: 12:11 am. (If you keep it in Date format.) 12:11 am could also be viewed as: 0 Hours, 11 minutes, 0 seconds. And now that it knows, you should be able to subtract.
Try this:
=TIME(HOUR(X3),MINUTE(X3)-W3,SECOND(X3))
The ######### is because you have a negative time. Becuase Excel reads time as decimals of 24 hours, 8:00:00 is .3333 and if you subtract 11 from that you get -10.6666 and date/time can not be negative.
I have done 24 hour measurement and results obtain contains around 1400 entries. Now I want to plot those results in such a way
That x axis represent my time and y axis the corresponding value.
My x axis should be divided into 24 sections each representing 1
hour.
My exact start time is 14:00 and end time is next day 14:00.
For more clarification I am adding a simple version of my data here below
And resulting Plot I am getting is this.
I look forward to your answers. Thank you.
If the time values go across midnight, you need to add a date part to the time value, so they can be plotted correctly as before and after midnight. At the very least, the time values for the first day should have a 0 before the decimal, e.g. 0.875 for 9 pm, and the values after midnight should have a 1 before the decimal, e.g. 1.125 for 1 am, so it falls on the next day and not the same day as the 9pm value.
Then plot an XY Scatter chart.
Work out what Excel's internal number (date/time value showing in General format) is for the desired X axis minimum, maximum and major/minor increments and format the x axis accordingly. Set the number format to hh:mm
Edit: For example: you want the minimum X axis value to be 24-Dec-2015 11 pm. Write that into a cell as a date/time. Format the cell to General. Then use the number you see in the format dialog for the X axis minimum.
If you want the major unit to be 1 hour, write the time value 1:00 into a cell and format it with general. Use that number in the dialog for Major.
Format the X axis labels to show time values, not dates.
I have looked at all the options I can find on this forum, but I am unable to solve my problem. this may very well be because I only have basic excel skills. simple question..how do I convert a decimal time ie 9.25 into hh:mm format ie 09:25 ? I need to do this as I am using existing data that requires rounding to 15 mins + 2mins and I can only do this in hh:mm format. Many thanks
Assuming your value is in A1...
Get the hours
=FLOOR(A1, 1)
Get the decimal portion
=A1 - FLOOR(A1, 1)
Convert this decimal to minutes (0.25->25):
=(A1 - FLOOR(A1, 1)) * 100
Bring the whole lot together:
=TIME(Floor(A1, 1), (A1 - FLOOR(A1, 1)) * 100, 0)
Result: 9:25 AM
If it's a true decimal time then 9.25 hours should convert to 9:15. If that's the case you can just divide by 24, e.g. 9.25 in A1 then in B1
=A1/24
format B1 as [h]:mm and you'll get 9:15
....and if you really do want 9:25 as the answer you could try this formula
=TEXT(A1*100,"00\:00")+0
format result cell as [h]:mm- that will work even for values > 24
If you want you can do your conversion and rounding in one go, e.g. to round to the nearest 15 minutes the first formula becomes:
=MROUND(A1/24,"0:15")
Let's suppose you have 9.25 in cell A1. First you need to extract the integer part (9). Let's put this in B1:
=FLOOR(A1)
Now we must get the decimal part:
=A1-B1
And convert it into the ratio-to-60, so let's have this in C1:
=(A1-B1)/0.6
This way, 0.25 becomes 0.4166... (Of course 0.30 would become 0.50).
Finally, add both values and divide by 24. In Excel, dates/times are stores as decimal numbers in which 1 = 24 hours. So let's place this in D1:
=(B1+C1)/24
The result is 0.392... And if you give that cell a time format, you will see 09:25.
So, now let's put all together in one cell:
=(FLOOR(A1)+(A1-FLOOR(A1))/0.6)/24
Don't forget to format the cell as time (custom format "hh:mm", for example).
greeting for every one,
I have data in excel file and i want to draw a plot in Matlab in which the Y axis represent the time with starting time in 10:45 for 24 hours i.e, from 10:00 am to the next day in 10:00 am. The x-axis represents the excel file data( the values of frequencies during 24 hours)
how to put the different times in the y axis showing the values of time in the formula of time(00:00 am/pm) using matlab?
if i use this code: ylim(subplot2,[1 24]) and xlim(subplot2,[170 230]) it will be plotted but the y-axis shows only the hours from 1 to 24 hours and i need the y-axis from 10:45 am(starting time) to(10:45)am in interval 24 hours
You can create custom tick labels by specifying tick strings with the command:
time_cells = {'10:45','11:45',...,'9:45','10:45'};
set(gca, 'YTickLabel', time_cells)
Where gca is the handle of your current plot (axes), and the time_cells is a cell array containing all your required tick labels (without the ellipse). It is probably easiest to generate this using a for-loop to create the numbers you want, and then num2str to convert to the strings you need.
I use Excel 2013 and have a cell with the following value:
"08.01.1900 1:45:00"
that will be displayed inside the cell as: "193:45:00" - meaning 193 hours, 45 minutes and 00 seconds (see the first image below).
Here is screen of how it looks like and the formatting of the cell
[how it looks like]
QUESTION: How I can in cell "Salary" to get decimal number, like - 193,45? Help me, please.
The cell is formatted as Time (see the image below)
So, you have Q2 = 12:30 (or 12,5 hours where 0,5 hour=30min) and R2 = 15,5 UAH/hour and since you want to calculate salary, you should multiple 12,5*15,5=193,75.
Follow next steps to achieve the desired result:
Write next formula in S2: =Q2*24*R2 (since time stored in Excel as part of a day, we need to multimply by 24 . Your value 12:30 is actually 0,520833333333333 ,you can see it if you'd format Q2 as number. Myltiplication 0,520833333333333 by 24 gives you exactly 12,5)
Format your S2 as number
the result would be 0,52*24*15,5 = 193,75 and this value is what you actually need.