(B.1) Using fprintf( ) with arrays - University of California, Irvine
[Pages:9](B.1) Using fprintf( ) with arrays:
If you only specify one formatting command, all elements of an array will be printed on a single row (even multidimensional arrays). For multidimensional arrays, elements will be printed off one column at a time.
M-file: x = (1 : 0.25 : 2) y = [1,4,7 ; 9,8,6]; fprintf('%7.2f' , x) fprintf('\n') fprintf('%7.2f' , y)
Output: 1.00 1.25 1.50 1.75 2.00 1.00 9.00 4.00 8.00 7.00 6.00
In order to print off elements as columns, use the \n command. The format commands will be used over and over until all the elements are printed.
M-file: x = (1 : 0.25 : 2); y = [1,4,7 ; 9,8,6]; fprintf('%7.2f \n' , x) fprintf('\n') fprintf('%7.2f \n' , y ) fprintf('\n') fprintf('%7.2f %7.2f %7.2f \n' , y ) fprintf('\n') fprintf('%7.2f %7.2f \n' , y ) fprintf('\n') fprintf('%7.2f %7.2f %7.2f \n' , y ) fprintf('\n') fprintf('%7.2f %7.2f %7.2f %7.2f \n' , y )
1
After Execution: 1.00 1.25 1.50 1.75 2.00
1.00 9.00 4.00 8.00 7.00 6.00
1.00 9.00 4.00 8.00 7.00 6.00
1.00 9.00 4.00 8.00 7.00 6.00
1.00 9.00 4.00 8.00 7.00 6.00
1.00 9.00 4.00 8.00 7.00 6.00
If you try to print multiple arrays you may run into trouble. I would like to print off all x-values in the first column, all the corresponding y-values in the second column.
M-file: x = (0:1:5); y = x.^2; fprintf('%4.1f %6.1f \n' , x , y)
Output: 0.0 1.0 2.0 3.0 4.0 5.0 0.0 1.0 4.0 9.0 16.0 25.0
2
Whoops. This didnt work because we printed off all the elements of x first, then the elements of y. Instead, we combine x and y into a single array and then print that. Remember, multidimensional arrays will be printed column by column.
M-file: x = (0:1:5); y = x.^2; tablexy = [x;y]; fprintf('%4.1f %6.1f \n' , tablexy)
Output: 0.0 0.0 1.0 1.0 2.0 4.0 3.0 9.0 4.0 16.0 5.0 25.0
(C) Writing to a file:
When writing to a file, you need to follow three steps:
(1) Open the file with the fopen( ) command.
fileid = fopen(,,filename.txt , ,,w)
The fileid is a number that identifies the file you are opening. The `w' gives you permission to write to the file.
(2) Print to the file using fprintf( ).
fprintf(fileid, ,,some text and formatting instructions , variables)
Notice how we put the fileid inside the fprintf( ) command. This is how Matlab/Octave knows where to write the information. If you left out the fileid, Matlab/Octave would write to the screen.
(3) Close the file using fclose( ).
fclose(fileid)
3
In mfile.m: a = 50.5; b = 21.2; x = (0:0.25*pi:pi); y = sin(x); tablexy = [x;y]; file1 = fopen('sample.txt' , 'w'); fprintf(file1 , '%6.2f\n' , a , b); fprintf(file1 , '%6.2f %6.2f \n', tablexy); fclose(file1);
Inside ,,sample.txt: > mfile 50.50 21.20 0.00 0.00 0.79 0.71 1.57 1.00 2.36 0.71 3.14 0.00
(E) Reading from a file:
There are many commands that can be used to read data from a file depending on the situation. In this class we will learn one command, fscanf( ).
When reading data from a file, you need to follow a similar procedure as when writing data to a file.
(1) Open the file with the fopen( ) command.
fileid = fopen(,,filename.txt)
The fileid is a number that identifies the file you are opening. Notice that we left off the `w' since we do not want to write to this file.
4
(2) Read from the file with the fscanf( ) command. output_array = fscanf(fileid, ,,format of data file, size of data); "size of data" refers to the number of rows and columns in the data file. [2,10] means than 2 columns x 10 rows will be read in. See example below for demonstration of fscanf( ). (3) Close the file fclose(fileid)
5
Example: Create a text file containing the hour, temperature , and relative humidity. Then read the data and store it in an array (which we can use later).
In mfile.m: clear;clc; % The first part of the program creates a text file containing the time and temperature. time = [0,3,6,9,12,15]; temp = [55.3,54.1,54.0,56.7,62.9,63.1]; RH = [67,76,77,80,90, 93]; array = [time ; temp ; RH]; file1 = fopen('temp_RH.txt' , 'w'); fprintf(file1, '%2i \t %5.1f %5.1f \n' , array); fclose(file1);
% now we read in the data file2 = fopen('temp_RH.txt'); % This will read the time and temp data until the file is over % (3 columns and an infinite number of rows... unless end of file is reached) % [3,6] would do the same thing as [3,inf] in this case. A = fscanf(file2, '%f' , [3, inf]);
%A = fscanf(file2, '%f' ); fclose(file2);
% Notice that the data is transposed when stored in A. % fscanf( ) reads data in COLUMN ORDER. Similar to how fprintf( ) writes in column order. disp(A)
% However, this format is perfect for fprintf since it prints column by column fprintf('%3i %7.2f %7.2f \n', array)
% We can manipulate the data in A fprintf('The mean temperature is %5.1f \n' , mean(A(2,:)) ) fprintf('The mean RH is %5.1f \n' , mean(A(3,:)) )
In ,,temp.txt: 0 55.3 67.0 3 54.1 76.0 6 54.0 77.0 9 56.7 80.0 12 62.9 90.0 15 63.1 93.0
6
After execution: 0.00000 3.00000 6.00000 9.00000 12.00000 15.00000 55.30000 54.10000 54.00000 56.70000 62.90000 63.10000 67.00000 76.00000 77.00000 80.00000 90.00000 93.00000 0 55.30 67.00 3 54.10 76.00 6 54.00 77.00 9 56.70 80.00 12 62.90 90.00 15 63.10 93.00
The mean temperature is 57.7 The mean RH is 80.5
7
Comparing data in arrays:
I didnt have time to get to this material when discussing logical expressions.
M-file: a = 1; b = 2; c = 4; d = (a quiz2 = [90,90,89]; > quiz1 < quiz2 ans = 0 1 1
An array of true/false values is returned. These can be stored in a logical array.
> a = quiz1 < quiz2 a= 0 1 1
You can compare all elements in an array to a single value.
> b = quiz1 > 79 b= 1 1 0
> whos
Variables in the current scope:
Attr Name Size
==== ==== ====
a
1x3
b
1x3
quiz1 1x3
quiz2 1x3
Bytes Class ===== =====
3 logical 3 logical 24 double 24 double
a and b are logical arrays. 8
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- h2o cheat sheet github pages
- b 1 using fprintf with arrays university of california irvine
- creating dataframe from numpy array
- 032 2009 using sas arrays to manipulate data
- convert rdd to dataframe using schema
- matrix mkmat — convert variables to matrix and vice versa stata
- practice exam databricks certified associate developer for apache
- data structures in python grapenthin
- interaction between sas and python for data handling and visualization
- convert rdd to dataframe with schema hotkeys
Related searches
- university of california irvine related people
- university of california irvine staff
- university of california irvine employment
- university of california irvine address
- university of california irvine online
- university of california irvine employment opportunities
- university of california irvine careers
- university of california irvine medical center careers
- university of california irvine faculty
- university of california irvine website
- university of california irvine jobs
- university of california irvine athletics