100% found this document useful (1 vote)
13 views

Instant Access to Python for MATLAB Development: Extend MATLAB with 300,000+ Modules from the Python Package Index Danial ebook Full Chapters

The document promotes the ebook 'Python for MATLAB Development' by Albert Danial, which teaches users how to extend MATLAB with over 300,000 Python modules. It includes links to download the ebook and other related digital products, as well as a detailed table of contents outlining various chapters covering Python basics, data containers, and integration with MATLAB. Additionally, it acknowledges contributors and provides information about the author's experiences and motivations for writing the book.

Uploaded by

hajdinvogl
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
13 views

Instant Access to Python for MATLAB Development: Extend MATLAB with 300,000+ Modules from the Python Package Index Danial ebook Full Chapters

The document promotes the ebook 'Python for MATLAB Development' by Albert Danial, which teaches users how to extend MATLAB with over 300,000 Python modules. It includes links to download the ebook and other related digital products, as well as a detailed table of contents outlining various chapters covering Python basics, data containers, and integration with MATLAB. Additionally, it acknowledges contributors and provides information about the author's experiences and motivations for writing the book.

Uploaded by

hajdinvogl
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Get the full ebook with Bonus Features for a Better Reading Experience on ebookmeta.

com

Python for MATLAB Development: Extend MATLAB with


300,000+ Modules from the Python Package Index
Danial

https://ebookmeta.com/product/python-for-matlab-development-
extend-matlab-with-300000-modules-from-the-python-package-
index-danial/

OR CLICK HERE

DOWLOAD NOW

Download more ebook instantly today at https://ebookmeta.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Practical Channel-Aware Resource Allocation: With MATLAB


and Python Code Michael Ghorbanzadeh

https://ebookmeta.com/product/practical-channel-aware-resource-
allocation-with-matlab-and-python-code-michael-ghorbanzadeh/

ebookmeta.com

Dynamic System Modelling and Analysis with MATLAB and


Python 1st Edition Jongrae Kim

https://ebookmeta.com/product/dynamic-system-modelling-and-analysis-
with-matlab-and-python-1st-edition-jongrae-kim/

ebookmeta.com

An Introduction to Scientific Computing with MATLAB and


Python Tutorials 1st Edition Sheng Xu

https://ebookmeta.com/product/an-introduction-to-scientific-computing-
with-matlab-and-python-tutorials-1st-edition-sheng-xu/

ebookmeta.com

Price Action Trading Secrets 1st Edition Rayner Teo

https://ebookmeta.com/product/price-action-trading-secrets-1st-
edition-rayner-teo/

ebookmeta.com
The Hunt for the Secret Papyrus Geronimo Stilton

https://ebookmeta.com/product/the-hunt-for-the-secret-papyrus-
geronimo-stilton/

ebookmeta.com

Creative Puzzles to Ignite Your Mind Shyam Sunder Gupta

https://ebookmeta.com/product/creative-puzzles-to-ignite-your-mind-
shyam-sunder-gupta/

ebookmeta.com

Islamic Psychology Human Behaviour and Experience from an


Islamic Perspective 1st Edition G. Hussein Rassool

https://ebookmeta.com/product/islamic-psychology-human-behaviour-and-
experience-from-an-islamic-perspective-1st-edition-g-hussein-
rassool-2/
ebookmeta.com

Textbook Of Microbiology arya publications 2022 sixth ed


6th Edition C. P. Baveja

https://ebookmeta.com/product/textbook-of-microbiology-arya-
publications-2022-sixth-ed-6th-edition-c-p-baveja/

ebookmeta.com

Mayor of Elf Town 4 1st Edition Dante King

https://ebookmeta.com/product/mayor-of-elf-town-4-1st-edition-dante-
king/

ebookmeta.com
Recent Advances and Applications of Thermoset Resins 2nd
Edition Debdatta Ratna

https://ebookmeta.com/product/recent-advances-and-applications-of-
thermoset-resins-2nd-edition-debdatta-ratna/

ebookmeta.com
Albert Danial

Python for MATLAB Development


Extend MATLAB with 300,000+ Modules from the
Python Package Index
Albert Danial
Redondo Beach, CA, USA

ISBN 978-1-4842-7222-0 e-ISBN 978-1-4842-7223-7


https://doi.org/10.1007/978-1-4842-7223-7

© Albert Danial 2022

This work is subject to copyright. All rights are solely and exclusively
licensed by the Publisher, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in
any other physical way, and transmission or information storage and
retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.

The use of general descriptive names, registered names, trademarks,


service marks, etc. in this publication does not imply, even in the
absence of a specific statement, that such names are exempt from the
relevant protective laws and regulations and therefore free for general
use.

The publisher, the authors and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.

This Apress imprint is published by the registered company APress


Media, LLC part of Springer Nature.
The registered company address is: 1 New York Plaza, New York, NY
10004, U.S.A.
To Ashley, Theodore, Mimi
Preface
In 2018, I was chatting with a young engineer who had recently earned
an engineering master’s degree. MATLAB came up and she spoke of her
frustration with license shortages when projects came due at school. I
had the same frustrations—25 years earlier. Had nothing changed?
Of course, a lot had changed.
By then, we had already found our separate ways to Python to do
the kind of work we used to do in MATLAB. Why were so few MATLAB
users aware of the power and freedom Python could bring them?
I began assembling notes comparing Python solutions to their
MATLAB equivalents and shortly afterward learned of MATLAB’s py
module. A binary API to Python?! Too good to be true. It was too good to
be true, in a sense; early versions couldn’t use critical modules such as
NumPy.
The MathWorks improved py with each MATLAB release, though,
and today MATLAB can run code from NumPy, SciPy, Pandas,
matplotlib, statsmodels, dask, even modules compiled with Cython,
Numba, Pythran, and f2py. The MATLAB + Python combination offers
astounding possibilities to both languages, yet few MATLAB developers
know of this capability or how to take advantage of it. Fertile ground for
a new book, I thought.
Any source code or other supplementary material referenced by the
author in this book is available to readers on GitHub at
https://github.com/Apress/python-for-matlab-development. For more
detailed information, please visit http://www.apress.com/source-code.
Acknowledgments
Rachel Rybarczyk’s comments about MATLAB and Python inspired me
to start the journey that led to this book.
Alain Sei, although bowing out as my coauthor after realizing the
magnitude of the work ahead, nonetheless stayed on as my first reader.
At our weekly meetings in building R2, Alain put thought-provoking
spin on things to keep my perspective fresh.
Rocco Samuele helped elevate the literary quality of the text. While I
don’t have Rocco’s chops for the written word, his edit suggestions
clarified my writing.
Ravi Narasimhan’s critique of an early draft felt more like a mugging
than a review. After the bruises faded, it was clear he’d given me a
goldmine of improvement suggestions. Implementing them led to a
more balanced tone and more convincing assertions. Ravi also provided
the MATLAB examples for the point and line plots on maps shown in
Section 12.​4.
When Curtis Webb first told me about Numba four years ago, I
dismissed his claims that it could make Python functions run 10 ×, even
30 × faster—without using a C/C++/Fortran compiler. Impossible! Yet
somehow, like a magical alien technology, Numba does just that. Best
tip ever, thanks, Curtis!
Parker Hudnut gave valuable “big picture” suggestions on the book’s
overall structure. Thanks! The beer’s on me the next time we’re at
building H.
Thank you Steven Millett, Petra Poschmann, Drew Swalley, and
Mark Vaughn for tips on missing or incomplete topics.
Thanks to Professor John Hedengren for letting me copy his
predband() function in my section on prediction intervals (Section
11.​7.​3). His website1 has excellent videos on statistical computations in
Python.
Thanks to Professor James Doyle for advice on, and a technical
review of, the frequency response section, Section 14.​13.​7. His classic
“red book” on structural wave propagation [1] remains one of my
favorite technical reads.
Dale Williamson’s insights on structural dynamics were inspiring
and educational, and for that I’m grateful; thanks Dale. Errors with the
formulation of equations and procedures are entirely mine.
My technical reviewers, Phillip Feldman and Darrell Yocom, are the
unsung heroes behind the operational aspects of the code and
examples. Both found numerous code errors and saved me from
embarrassingly wrong explanations. Phillip guided me through the
confidence and prediction intervals in the regression section, Section
Section 11.​7.​3. Darrell was the original “observant reader” mentioned
at the end of the TCP Recipe, Section 7.​18, and first altered me to
MATLAB’s type downcast behavior for mixed-type math, Section 15.​2.
To the Apress team, thank you: Steve Anglin for taking a chance on
me; Mark Powers for shepherding the book from early draft to
production; Sherly Nandha for the extensive copy editing and
typesetting work needed to turn my draft into a book.
Finally, and most importantly, thanks to Ashley, Theodore, and Mimi
for believing in me and giving me time and space to write.
A.N.D.
November 2021
Table of Contents
Chapter 1:​Introduction
1.​1 Learn Python Through MATLAB Equivalents
1.​2 Is Python Really Free?​
1.​3 What About Toolboxes?​
1.​4 Why Python Won’t Replace MATLAB
1.​5 Contents at a Glance
1.​6 I Already Know Python.​How Do I Call Python Functions in
MATLAB?​
1.​7 The Recipes Don’t Work! MATLAB Crashes! (and What to Do
About It)
Chapter 2:​Installation
2.​1 Downloads
2.​1.​1 Match Your Python and MATLAB Versions!
2.​1.​2 Verify That Python Runs
2.​2 Post-Install Configuration and Checkout
2.​3 Creating and Running a Python Program
2.​4 The Curse of Choice
2.​5 Virtual Environments
2.​5.​1 matpy, the Virtual Environment Used in This Book
2.​5.​2 Commands to Manage Virtual Environments
2.​5.​3 Keeping Your Virtual Environment Current
2.​6 ipython, IDEs
2.​6.​1 Autoload Modules When ipython Starts
2.​7 Python and MATLAB Versions Used in This Book
Chapter 3:​Language Basics
3.​1 Assignment
3.​1.​1 Assignment with =​
3.​1.​2 In-Place Updates with +=​, -=​, and Others
3.​1.​3 Walrus Operator, =​
3.​2 Printing
3.​3 Indentation
3.​3.​1 Tabs
3.​4 Indexing
3.​4.​1 Brackets vs.​Parentheses
3.​4.​2 Zero-Based Indexing and Index Ranges
3.​4.​3 Start, End, and Negative Indices
3.​4.​4 Index Strides
3.​4.​5 Index Chaining
3.5 for loops
3.​5.​1 Early Loop Exits
3.​5.​2 Exit from Nested Loops
3.6 while Loops
3.7 if Statements
3.​7.​1 Boolean Expressions and Operators
3.​7.​2 Range Tests
3.​8 Functions
3.​8.​1 Pass by Value and Pass by Reference
3.​8.​2 Variable Arguments
3.​8.​3 Keyword Arguments
3.​8.​4 Decorators
3.​8.​5 Type Annotation and Argument Validation
3.​8.​6 Left-Hand Side Argument Count
3.​9 Generators
3.9.1 yield, next()
3.9.2 range()
3.​10 Scoping Rules and Global Variables
3.​11 Comments
3.​11.​1 Docstrings
3.​12 Line Continuation
3.​13 Exceptions
3.​14 Modules and Packages
3.​14.​1 Namespace
3.14.2 def main()
3.​14.​3 Module Search Path
3.​14.​4 Installing New Modules
3.​14.​5 Module Dependency Conflicts and Virtual
Environments
Chapter 4:​Data Containers
4.​1 NumPy Arrays
4.​2 Strings
4.​2.​1 Strings, Character Arrays, and Byte Arrays
4.​2.​2 String Operations
4.​2.​3 Formatting
4.​2.​4 Separate a String into Words
4.​2.​5 Tests on Strings
4.​2.​6 String Searching, Replacing with Regular Expressions
4.​2.​7 String Templates
4.​3 Python Lists and MATLAB Cell Arrays
4.​3.​1 Initialize an Empty List
4.​3.​2 Create a List with Given Values
4.​3.​3 Get the Length of a List
4.​3.​4 Index a List Item
4.​3.​5 Extract a Range of Items
4.​3.​6 Warning—Python Index Ranges Are Not Checked!
4.​3.​7 Append an Item
4.​3.​8 Append Another List
4.​3.​9 Preallocate an Empty List
4.​3.​10 Insert to the Beginning (or Any Other Position) of a
List
4.​3.​11 Indexing Nested Containers
4.​3.​12 Membership Test:​Does an Item Exist in a List?​
4.​3.​13 Find the Index of an Item
4.​3.​14 Apply an Operation to All Items (List
Comprehension)
4.​3.​15 Select a Subset of Items Based on a Condition
4.​3.​16 How Many Times Does an Item Occur?​
4.​3.​17 Remove the First or Last (or Any Intermediate) List
Item
4.​3.​18 Remove an Item by Value
4.​3.​19 Merging Multiple Lists
4.​3.​20 Unmerging Combined Lists
4.​3.​21 Sort a List
4.​3.​22 Reverse a List
4.​4 Python Tuples
4.​5 Python Sets and MATLAB Set Operations
4.​6 Python Dictionaries and MATLAB Maps
4.​6.​1 Iterating over Keys
4.​6.​2 Testing for Key Existence
4.​6.​3 Iterating over Keys, Sorting by Key
4.​6.​4 Iterating over Keys, Sorting by Value
4.​6.​5 Tuples As Keys
4.​6.​6 List Values
4.​7 Structured Data
4.7.1 Method 1: namedtuple
4.7.2 Method 2: SimpleNamespace
4.​7.​3 Method 3:​Classes
4.​7.​4 Method 4:​Data Classes
4.​7.​5 Enumerations
4.8 Caveat: “=” Copies a Reference for Nonscalars!
Chapter 5:​Dates and Times
5.​1 Time
5.​1.​1 Current Time
5.​1.​2 Time String Formats
5.​1.​3 tic, toc; %timeit
5.​2 Dates
5.2.1 datetime Objects to and from Strings
5.​2.​2 Time Deltas
5.​3 Timezones
5.​3.​1 UTC vs.​Local Time
5.4 Time Conversions to and from datetime Objects
5.​4.​1 Unix Epoch Seconds
5.​4.​2 ISO 8601 Time String
5.​4.​3 Julian Date; Modified Julian Date; GPS Time
5.5 zoneinfo in Python >= 3.9
5.​5.​1 List Available Timezones
5.​5.​2 Date Increments Across Daylight Savings Transition
5.​6 References
Chapter 6:​Call Python Functions from MATLAB
6.​1 Configure MATLAB to Recognize Python
6.​2 Does It Work?​
6.​3 Importing (and Reloading) Python Modules
6.4 Configure startup.m for Python Work
6.​5 Create Python Variables and Call Python Functions in
MATLAB
6.​5.​1 Scalars
6.​5.​2 Lists and Cell Arrays
6.​5.​3 Tuples
6.​5.​4 Numeric Arrays
6.​5.​5 Dictionaries and Structs
6.​5.​6 Keyword Arguments
6.​5.​7 Python-to-MATLAB and MATLAB-to-Python Variable
Converters
6.​5.​8 Traversing Generators
6.5.9 Traversing zip()
6.​6 Modifying the Python Search Path Within MATLAB
6.6.1 Extending sys.path with an Alias
Another Random Document on
Scribd Without Any Related Topics
In mounting the holder on the typewriter, the uprights are drilled at
the base to engage the two small screws at the side of the carriage
back of the roller. The exact location of these holes will vary in
machines of the different makes. Next, the uprights are clamped into
place with the screws, one at each end of the carriage. Then
determine the distance between the arms of the uprights, drill a
corresponding hole at each end of the guide-and-cutter plate, and
fasten the plate to the uprights with small stove bolts. The roll of
paper is placed on the rod and fed between the machine platen and
roller as with single sheets. When the article or memorandum being
written is finished, the paper is held against the guide plate and the
blade of a pocketknife inserted in the slot. Passing the blade the
length of the slot cuts off the paper, or it may be torn off at the slot.
The end of the paper roll is again fed into the machine, ready for
another operation.
Handy Paring Knife Made from Old Hacksaw
Blade

A Serviceable Paring Knife Made from a Piece of Hacksaw Blade, and Details
of Its Construction: The Handle and Blade are Held Together with a Rivet and
a Lead Ferrule

With a little work a hacksaw blade, or a portion of one, can be


made into a paring knife that will prove very durable because of the
excellent quality of the steel. Two pieces of hard wood should be cut
into the shapes shown and riveted together with one end of the
blade between them. After putting a paper mold about the end of the
handle from which the steel projects, melted lead is poured into it, to
form a collar that will hold the parts firmly together. The exposed part
of the saw can then be ground as desired.
Washing Machine Equipped with Churn
Attachment

Without Impairing the Usefulness of this Washing Machine a Plunger has


been Attached to the Flywheel Which Does the Work of a Churn, a Jar for
the Cream being Installed as Shown

The owner of a power-driven family washing machine has


provided an attachment for it with which he churns cream at a little
additional expenditure of energy. A wooden plunger was bolted to
the outside of the flywheel and its upper end placed between two
rollers set in a metal frame attached to the side of the tub. Enough
play was allowed between the rollers to permit the plunger to move
up and down freely. A framework large enough to hold a glass fruit
jar was attached to the side of the plunger, a thumbscrew being
provided in its upper end with which the jar is held firmly in place. As
the flywheel revolves, the movement of the plunger thoroughly
agitates the contents of the jar.—Dale R. Van Horn, North Loup,
Neb.
Treating Closets with Cedar Oil
Apropos of the article in a recent issue of Popular Mechanics
Magazine entitled “A Cedar-Lined Oak Chest,” readers who desire
the advantages of a cedar-lined box or closet may accomplish it by
the use of cedar oil. Painting the interior of a box with this oil will to
all intents and purposes convert it into a cedar chest regardless of
the kind of wood used. The cost of the oil is not great. A closet
treated in the same manner will likewise keep out insects.—Robert
E. M. Bain, St. Louis, Mo.
Barnyard Gate is Operated with the Foot
This Gate is Unlatched by Operating the Foot Lever as indicated. It Is a
Special Convenience When One has Both Hands Occupied Carrying Pails
or Bundles
A gate which can be unlatched with the foot has proven a great
convenience across a path on a farm where laborers frequently pass
with both hands occupied carrying pails. Pivoted to the side of the
gate, near its center, a beam, or foot lever, is hung in a vertical
position, extending almost to the ground and having a shelf bracket
fastened to its upper end. The horizontal arm of the bracket passes
beneath a porcelain knob projecting from a pivoted bar that engages
the elbow catch. By pushing the vertical beam to one side with the
foot the bar is raised above the catch, allowing the gate to swing
open. If the gate is properly hung it will close of itself, the elbow
catch serving to prevent its being opened again, except when the bar
is raised.—T. C. McDowell, Adrian, Michigan.
Improvised Post-Card Projector and
Enlarging Camera
By HARRY MARCELLE

An outfit which may be used for either projecting picture post cards or
enlarging photographic negatives was assembled as delineated
in the illustration. An ordinary camera, which provides the lens and
bellows, is required, in combination with a dark box which can be
built in the home workshop. The method of construction is this:
Make a box about 8 in. square out of ¹⁄₂-in. planed soft-wood
stock. Nail the sides, but omit, for the present, the top and the
bottom. The two openings thus left will be called the front and the
back. Mount an 8 by 8 by ¹⁄₂-in. board, D, which constitutes a door,
on the back with hinges and provide a hook to hold it shut. Cut a
square hole, of the same size as that of the opening in the back of
the camera which is to be used, in another 8 by 8-in. piece, E. This
will constitute the front board. This front board is so cut that it fits in
between the sides of the box instead of on the ends, as does the
back. In the top, cut a square hole for ventilation. A hood is provided
over this hole to prevent light being thrown forward.
When using the arrangement as a projector or magic lantern two
40-watt tungsten lamps, A, are required. Each lamp is mounted in a
porcelain receptacle held on the floor with screws. A lamp cord, one
end connecting the two lamps in multiple and the other fitted with an
attachment plug, passes through a hole in the floor of the box. Form
the two reflectors, B, of 8 by 7-in. bright tinned sheet-iron pieces,
each having holes along one of its edges to admit of attachment.
The reflectors are bent to a semicircular contour before mounting.
The card holder is detailed at C. It is a piece of tinned sheet iron bent
to the form shown so that it will hold a post card. A hole is drilled in
its center for a screw pivot. It can then be fastened to the center of
the back door and can be turned into position for either horizontal or
vertical pictures. A washer is inserted on the screw between the
holder and the door. The thickness of the camera body having been
determined, a slide is fastened to the front board, as diagrammed, to
support this body.

An Ordinary Small Camera, Fitted with This Attachment, Becomes an


Enlarging and Post-Card Projecting Camera
Before it can be used as a projector it must be adjusted to operate
with the camera of the type and size available. The adjustment,
which must be made in a darkened room, having on one of its walls
a white screen on which the image will be projected, is effected thus:
Remove the back from the camera and place the camera in the slide
without extending the bellows. Open the shutter. Insert a card in the
holder C. Light the tungsten lamps. Now move the front board, with
the camera carried on it, back and forth within the box until the
components are in focus, that is, until the most distinct image
obtainable is reproduced on the screen. Then, illuminate the
previously darkened room and nail the front board in the position
thus determined. These adjustments having been made, paint the
box, inside and out, a coat of dead black. Everything should be
painted black except the reflecting surfaces of the tin reflectors and
the incandescent-lamp bulbs. The front board having been fastened,
subsequent focusing can be effected by shifting longitudinally the
lens board of the camera. The image of any sort of a picture that will
fit in the holder can be reproduced. Colored post cards will project in
their natural tints.
To make enlargements with the same box, a few minor changes
are necessary. When employed for enlargements the tungsten
lamps, which are required for projection, are not used. They may,
however, remain in the box and can be disconnected from circuit by
unscrewing them a few turns. The negative, or film, which is to be
enlarged, is held in the opening E. Where a film is to be reproduced,
it is held between two pieces of glass which are fastened to the
inside of the front board with small clips. If a glass negative is used,
the two additional glass plates are unnecessary. If the negative does
not fill the opening in the camera, a mask cut from heavy black paper
will be required to cut off the light.
The light for the enlargement is furnished by another tungsten
lamp mounted in a porcelain receptacle which is screwed to a board
which constitutes a base. This light source is moved about in the
house until it is directly back of the opening E in the front of the box
and until the light is distributed equally over the entire negative. To
focus, move the camera backward or forward. While focusing, use a
yellow glass, or ray screen, to cover the lens. When focusing has
been completed, the shutter is closed and the ray screen removed.
Then stop down the lens to bring out detail, and expose.
Changing a Motor-Car Tire without a Jack

It occasionally happens that a motorist fails to have a jack at hand


when a tire needs to be changed on the road. The situation is easily
met with the aid of a strong board and a couple of blocks or rocks.
Driving the desired wheel onto the incline, provided in the manner
illustrated, and setting the brakes, a block is placed beneath the
axle. The board is then knocked out of the way.—John Peters,
Milwaukee, Wis.
Roller Truck for Use in Scrubbing
A little padded platform on wheels takes most of the drudgery
away from scrubbing in hotels and office buildings. The platform
carries the pail as well as the scrubber, and enables the scrubber to
keep dry.—Florence L. Clark, McGregor, Ia.
Economical Use of Wood Alcohol in Small
Cooking Stove
A couple eating breakfast and supper in their room used a chafing
dish for cooking. A hard alcohol was used for fuel, and the expense
seemed too high. So a fuel can was filled with pulverized asbestos
pipe covering, and then saturated with wood alcohol. A quart of
alcohol lasted about a month.—Charles A. King, Plymouth, N. H.
Attractive Table Stands for Hot Dishes

Attractive stands which will preserve the dining table from injuries,
or heat marks made by hot dishes, can be easily made from thin
pieces of board cut oblong or oval. After the board has been cut the
proper size, cleats are fastened to the underside to which billiard-cue
tips are attached to serve as supports. The stand should be
varnished and waxed to match the table.—George L. Furse, St.
Louis, Mo.
Cord Used as Spacer for Curtain Rings
To make the curtain rings space automatically along the curtain
pole, tie a cord from one ring to the next, spacing the rings uniformly.
Or the cord may be attached at uniform distances to the curtain. A
pull at the edge of the curtain will space the rings evenly every time.
—Frank L. Matter, Portland, Ore.
Device for Packing Earth in Transplanting
When tomato or cabbage plants are to be set out in considerable
numbers, the simple implement shown here makes stooping over to
press the dirt about the plants unnecessary. After a row of plants has
been set in dibble holes and watered, the soil can be packed about
their roots quickly while one is standing upright. The jaws of the
device are actuated by means of the hinged lever.—A. S. Thomas,
Amherstburg, Ont.

You might also like