<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5153018376412094023</id><updated>2011-11-27T15:15:23.778-08:00</updated><category term='paper'/><category term='attachment'/><category term='career'/><category term='Human Computer Interaction'/><category term='tools'/><category term='vision'/><category term='writing'/><category term='HCI'/><category term='about me'/><title type='text'>Human Factors and Engineering Psychology</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-8731181155456832289</id><published>2010-06-09T20:08:00.000-07:00</published><updated>2010-06-09T20:08:36.871-07:00</updated><title type='text'>Cognitive load modulates attentional capture by color singletons during effortful visual search☆</title><content type='html'>&lt;a href="http://www.sciencedirect.com/science?_ob=GatewayURL&amp;amp;_origin=IRSSCONTENT&amp;amp;_method=citationSearch&amp;amp;_piikey=S0001691810000909&amp;amp;_version=1&amp;amp;md5=4b9f3cd95a13f5b5c4523cf3cf590e0b"&gt;Cognitive load modulates attentional capture by color singletons during effortful visual search☆&lt;/a&gt;: "Publication year: 2010&lt;br&gt;&lt;b&gt;Source:&lt;/b&gt; Acta Psychologica, In Press, Corrected Proof, Available online 31 May 2010&lt;br&gt;Bryan R., Burnham&lt;br&gt;Color singletons that are irrelevant to locating a visual target do not typically capture attention if visual search is effortful. In contrast, when search is efficient color singletons are often found to capture attention. Such distraction by a color singleton can be modulated by single-task vs. dual-task manipulations when visual search is efficient. This is due, presumably, to the increased cognitive load in the dual-task condition, which interferes with top-down attentional control. This study investigated whether capture by a color singleton is also modulated by single-task vs. dual-task manipulations when visual search was effortful. The results of three experiments revealed..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-8731181155456832289?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sciencedirect.com/science?_ob=GatewayURL&amp;_origin=IRSSCONTENT&amp;_method=citationSearch&amp;_piikey=S0001691810000909&amp;_version=1&amp;md5=4b9f3cd95a13f5b5c4523cf3cf590e0b' title='Cognitive load modulates attentional capture by color singletons during effortful visual search☆'/><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/8731181155456832289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=8731181155456832289' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/8731181155456832289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/8731181155456832289'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2010/06/cognitive-load-modulates-attentional.html' title='Cognitive load modulates attentional capture by color singletons during effortful visual search☆'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-7794464445379987083</id><published>2009-10-14T22:15:00.001-07:00</published><updated>2009-10-14T22:15:54.257-07:00</updated><title type='text'>import .edf files in batch into DataViewer</title><content type='html'>Dear  SR Researchers,&lt;br /&gt;&lt;br /&gt;I love SR Research Product, and benifits a lot from your product. But how I wish I could import the .edf files in batch, because it take me over one hour to import the expeirment data into dataviewer. It is time cost and boring to do this manual work. To save my time, and many other researchers like me,I wrote a simple software toimport .edf in a batch into DataViewer. This will save me lots of time. You can download the software at the following link.&lt;br /&gt;&lt;a href="http://cid-bbc15003189d7799.skydrive.live.com/browse.aspx/Public/BatchImporter" target="_blank"&gt;http://cid-bbc15003189d7799.&lt;wbr&gt;skydrive.live.com/browse.aspx/&lt;wbr&gt;Public/BatchImporter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope you like the tool.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    As a fan of SR Research products, I love their eye tracker very much. But how I wish I could import the .edf files in batch, because it take me over one hour to import the expeirment data into dataviewer. It is time cost and boring to do this manual work. To save my time, and many other researchers like me,I wrote this simple software. I have tested the program with DataViewer 1.8.1. I guess it will work with any version of DataViewer.&lt;br /&gt;&lt;br /&gt;------------------------------&lt;div id=":2rh" class="ii gt"&gt;&lt;wbr&gt;---------------------&lt;br /&gt;Function:&lt;br /&gt;------------------------------&lt;wbr&gt;---------------------&lt;br /&gt;- To import the .edf files into DataViewer in batch.&lt;br /&gt;- to Save your time&lt;br /&gt;&lt;br /&gt;------------------------------&lt;wbr&gt;---------------------&lt;br /&gt;How to use?&lt;br /&gt;------------------------------&lt;wbr&gt;---------------------&lt;br /&gt;1. set up config.ini&lt;br /&gt;put the dataviewer directory in the second line in the config.ini.&lt;br /&gt;The default directory is "c:\Program Files\SR Research\DataViewer\&lt;wbr&gt;DataViewerW.exe"&lt;br /&gt;&lt;br /&gt;2. set edf data location&lt;br /&gt;put the directory of the edf files in edfLocation.txt&lt;br /&gt;Each directory takes one line. It does not require the directory to be the folder just containing .edf. It can be any folders as long as itself or its subfolders contain the .edf file.&lt;br /&gt;&lt;br /&gt;3. Click BatchImporter.exe to run&lt;br /&gt;Then the software will ask DataViewer to import all the edf files you set in edfLocation.txt&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------------------------------&lt;wbr&gt;---------------------&lt;br /&gt;License&lt;br /&gt;------------------------------&lt;wbr&gt;---------------------&lt;br /&gt;&lt;br /&gt;I wrote this tool to help myself and my coworkers. I am not affiliated with SR Research. Use the tool at your own risk, although I do not believe there will be any risk.It is a free software.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-7794464445379987083?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/7794464445379987083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=7794464445379987083' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/7794464445379987083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/7794464445379987083'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2009/10/import-edf-files-in-batch-into.html' title='import .edf files in batch into DataViewer'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-7711252269575543606</id><published>2008-11-20T11:41:00.000-08:00</published><updated>2008-11-20T11:55:28.008-08:00</updated><title type='text'>Eprime Learning materials</title><content type='html'>&lt;div&gt;for those friends who are interested in e-prime programming. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Getting Started Guide.pdf&lt;div&gt;&lt;a href="http://cid-bbc15003189d7799.skydrive.live.com/self.aspx/Public/eprime/GettingStartedGuide.pdf"&gt;GettingStartedGuide&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reference Guide.pdf&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://cid-bbc15003189d7799.skydrive.live.com/self.aspx/Public/eprime/ReferenceGuide.pdf"&gt;ReferenceGuide&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Users Guide.pdf&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://cid-bbc15003189d7799.skydrive.live.com/self.aspx/Public/eprime/UsersGuide.pdf"&gt;UsersGuide&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and also a useful site @ CMU&lt;/div&gt;&lt;div&gt;http://step.psy.cmu.edu/&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-7711252269575543606?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/7711252269575543606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=7711252269575543606' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/7711252269575543606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/7711252269575543606'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/11/eprime-learning-materials.html' title='Eprime Learning materials'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-7347994314688955234</id><published>2008-11-10T08:39:00.001-08:00</published><updated>2008-11-11T20:27:37.228-08:00</updated><title type='text'>SurfLogger: A Logging Browser and Data Processing Method</title><content type='html'>&lt;span class="Apple-style-span"   style="  ;font-family:Arial;font-size:12px;"&gt;&lt;h3 xmlns="http://www.w3.org/1999/xhtml" id="goog-ws-page-title-header" class="goog-ws-page-title" style="color: rgb(0, 0, 0); font-family: Arial, Verdana, sans-serif; font-size: 22px; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 9px; padding-right: 10px; padding-bottom: 8px; padding-left: 10px; "&gt;&lt;span id="goog-ws-page-title"   style="color: rgb(0, 0, 0);   font-weight: bold; font-family:Arial, Verdana, sans-serif;font-size:22px;"&gt;SurfLogger&lt;/span&gt;&lt;/h3&gt;&lt;table xmlns="http://www.w3.org/1999/xhtml" id="jot-content-table" style="width: 100%; table-layout: fixed; border-collapse: collapse; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="col0" style="width: 100%; vertical-align: top !important; "&gt;&lt;div id="jot-content0" class="goog-ws-content goog-ws-content-ie goog-ws-clear"   style="color: rgb(0, 0, 0);   margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; min-height: 150px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; font-family:Arial, Verdana, sans-serif;font-size:12px;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;SurfLogger&lt;/b&gt;&lt;/span&gt; , developed by He, Jibo at University of Illinois, is an automated data logging tool for web-based studies. It is written in python, free, open-source, cross-platform, and easy to modify. This page is devoted to information and resources about SurfLogger.&lt;br /&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Features:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;span style=" line-height: 115%;  font-family:'Times New Roman';font-size:12pt;"&gt;SurfLogger is a useful tool for collecting data for web-based researches. With its great features of automated data logging, free, open-source, cross-platform, and no dependence on other browsers, SurfLogger can free many researchers from the financial and time cost in data collecting. SurfLogger is expected to contribute more to the increasing interest in web-based researches. &lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;Technical Specifics:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;p style="text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style=" line-height: 115%;  font-family:'Times New Roman';font-size:12pt;"&gt;SurfLogger is written in Python, a scripting language, and the GUI (Graphical User Interface) is created with wxPython, which is a Python bundle of wxWidget. SurfLogger can record a variety of user actions with the web pages and the browsers. SurfLogger produces two files, logfile.txt and urlfile.txt. Logfile.txt stores action IDs (natural numbers assigned to each action, used to track the record to the responding actions), the time for each actions, interaction with the browsers (such as, clicking on the &lt;span style="border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: windowtext; border-right-color: windowtext; border-bottom-color: windowtext; border-left- padding-top: 0in; padding-right: 0in; padding-bottom: 0in; padding-left: 0in; color:windowtext;"&gt;Back&lt;/span&gt;, &lt;span style="border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: windowtext; border-right-color: windowtext; border-bottom-color: windowtext; border-left- padding-top: 0in; padding-right: 0in; padding-bottom: 0in; padding-left: 0in; color:windowtext;"&gt;Forward&lt;/span&gt;,&lt;span style="border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: windowtext; border-right-color: windowtext; border-bottom-color: windowtext; border-left- padding-top: 0in; padding-right: 0in; padding-bottom: 0in; padding-left: 0in; color:windowtext;"&gt;Home&lt;/span&gt;, etc. buttons), and mouse coordination when clicking. The time record could be used to compute the time of completion for each task. The number of button press on the browsers could be used as a measure of effort in carrying out the task. SurfLogger also captures the images of each screen when the web page refreshes. Marking the mouse coordination on the screen captures could tell us what links the users clicked at. Urlfile.txt stores action IDs and URLs (Uniform Resource Locator). Action IDs are used to synchronize the record in logfile.txt and urlfile.txt. URL record is stored in a separate file because the abundant information it can provides. I will give an example about how to extract information from urlfile.txt in case study section of this paper.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style=" line-height: 115%;  font-family:'Times New Roman';font-size:12pt;"&gt;SurfLogger also calls external software to record the whole process of user actions. Currently, I used Michael Urman’s Screen Recorder named cankiri as my external software for recording, because it is also written in python and shares the same spirit of&lt;span&gt;   &lt;/span&gt;open source. &lt;span&gt; &lt;/span&gt;With video record, the researchers could know more about users’ actions. If quality of recording is emphasized, SurfLogger could easily switch to call other recording software, and only one line of the code has to change to refer to the path of the external software.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;p style="text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;&lt;span style=" line-height: 115%;  font-family:'Times New Roman';font-size:12pt;"&gt;Case Study&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;p style="text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style=" line-height: 115%;  font-family:'Times New Roman';font-size:12pt;"&gt;To demonstrate how SurfLogger could benefit web-based research, I will briefly explain the usability analysis of IGroup as a case study (Wang, Jing, He, and Yang, 2007). IGroup is an image search engine, presenting the results in semantic clusters. To test whether IGroup can increase search efficiency compared to MSN, we developed the predecessor of SurfLogger, which functioned similarly like SurfLogger, but less flexible. We developed a measure of Search Effort to compare IGroup and MSN objectively. Search Effort was defined as the number of query input, and number of links and cluster names clicked by the users. Query input, links and cluster names clicked were extracted from URLs recorded by our automated logging tool. A sample URL recorded in this study was listed as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;i&gt;&lt;span style=" line-height: 115%;  font-family:'Times New Roman';font-size:12pt;"&gt;Wednesday, August 30, 2006 3:06:54 PM&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;i&gt;&lt;span style=" line-height: 115%;  font-family:'Times New Roman';font-size:12pt;"&gt;http://msra-vss50-b/igroup2/search.aspx?q=&lt;b&gt;Disney&lt;/b&gt;#g,&lt;b&gt;14&lt;/b&gt;,&lt;b&gt;1&lt;/b&gt;,-1&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style=" line-height: 115%;  font-family:'Times New Roman';font-size:12pt;"&gt;The characters in bold, “Disney”, “14”, and “1” were the input query, ID of cluster name, and result page. The information could be extracted from the URL by simple text processing. &lt;span&gt; &lt;/span&gt;For code of data reduction, URL extraction and source code of SurfLogger please refer to my project page of SurfLogger.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Resources:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;1. Paper&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Potential users could get more information and description about SurfLogger from my draft paper [&lt;a href="http://docs.google.com/Doc?docid=dcwscj59_267c8b5pdgm&amp;amp;hl=en" style="color: rgb(194, 29, 12); outline-style: none; outline-width: initial; outline-color: initial; "&gt;click to download&lt;/a&gt;] . This paper will be presented at SCiP (Society of Computer in Psychology)' 2008 at Chicago.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;2. Codes&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="jot-content0" class="goog-ws-content goog-ws-content-ie goog-ws-clear"   style="color: rgb(0, 0, 0);   margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; min-height: 150px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; font-family:Arial, Verdana, sans-serif;font-size:12px;"&gt;&lt;p:colorscheme colors="#ffffff,#000000,#5f5f5f,#006633,#cc9900,#3b812f,#996600,#afbf39"&gt;  &lt;div shape="_x0000_s1026"&gt;  &lt;div class="O" style="mso-line-spacing:&amp;quot;90 20 0&amp;quot;;mso-margin-left-alt:216; mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:144%"&gt;&lt;span style="mso-special-format:bullet;color:#CC9900;mso-color-index:4;position:absolute; left:-4.72%;top:.49em;font-family:Wingdings;font-size:65%"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:26pt"&gt;Source code &lt;/span&gt;&lt;/div&gt;  &lt;div class="O1" style="mso-line-spacing:&amp;quot;90 20 0&amp;quot;;mso-margin-left-alt:422; mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%"&gt;&lt;span style="mso-special-format:bullet;color:#3B812F; mso-color-index:5;position:absolute;left:-4.48%;top:.61em;font-family:Wingdings; font-size:60%"&gt;q&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt"&gt;&lt;a href="http://cid-bbc15003189d7799.skydrive.live.com/self.aspx/Public/surflogger/SurfLogger.pyw"&gt;SurfLogger.pyw&lt;/a&gt; and &lt;a href="http://cid-bbc15003189d7799.skydrive.live.com/self.aspx/Public/surflogger/setup.py"&gt;run.py &lt;/a&gt;&lt;/span&gt;&lt;/div&gt;  &lt;div class="O1" style="mso-line-spacing:&amp;quot;90 20 0&amp;quot;;mso-margin-left-alt:422; mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%"&gt;&lt;span style="mso-special-format:bullet;color:#3B812F; mso-color-index:5;position:absolute;left:-4.48%;top:.61em;font-family:Wingdings; font-size:60%"&gt;q&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt"&gt;Dependencies: &lt;/span&gt;&lt;/div&gt;  &lt;div class="O2" style="mso-line-spacing:&amp;quot;90 20 0&amp;quot;;mso-margin-left-alt:644; mso-text-indent-alt:423;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%"&gt;&lt;span style="mso-special-format:bullet;color:#CC9900; mso-color-index:4;position:absolute;left:-5.45%;top:.49em;font-family:Wingdings; font-size:65%"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt"&gt;PsychoPy &lt;/span&gt;&lt;span style="font-size:22pt"&gt;&lt;p:onmouseclick hyperlinktype="url" href="http://www.psychopy.org/"&gt;&lt;a href="http://www.psychopy.org/" target="_parent" onclick="window.event.cancelBubble=true;" style="position: relative"&gt;http://www.psychopy.org/&lt;/a&gt;&lt;/p:onmouseclick&gt;&lt;/span&gt;&lt;span style="font-size:22pt"&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt; &lt;/span&gt;&lt;/div&gt;  &lt;div class="O2" style="mso-line-spacing:&amp;quot;90 20 0&amp;quot;;mso-margin-left-alt:644; mso-text-indent-alt:423;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%"&gt;&lt;span style="mso-special-format:bullet;color:#CC9900; mso-color-index:4;position:absolute;left:-5.45%;top:.49em;font-family:Wingdings; font-size:65%"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt"&gt;wxPython &lt;/span&gt;&lt;span style="font-size:22pt"&gt;&lt;p:onmouseclick hyperlinktype="url" href="http://www.wxpython.org/"&gt;&lt;a href="http://www.wxpython.org/" target="_parent" onclick="window.event.cancelBubble=true;" style="position: relative"&gt;http://www.wxpython.org&lt;/a&gt;&lt;/p:onmouseclick&gt;&lt;/span&gt;&lt;span style="font-size:22pt"&gt; &lt;/span&gt;&lt;/div&gt;  &lt;div class="O2" style="mso-line-spacing:&amp;quot;90 20 0&amp;quot;;mso-margin-left-alt:644; mso-text-indent-alt:423;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%"&gt;&lt;span style="mso-special-format:bullet;color:#CC9900; mso-color-index:4;position:absolute;left:-5.45%;top:.49em;font-family:Wingdings; font-size:65%"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt"&gt;Or download the dependency bundle at here &lt;/span&gt;&lt;/div&gt;  &lt;div class="O" style="mso-line-spacing:&amp;quot;90 20 0&amp;quot;;mso-margin-left-alt:216; mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:144%"&gt;&lt;span style="mso-special-format:bullet;color:#CC9900;mso-color-index:4;position:absolute; left:-4.72%;top:.49em;font-family:Wingdings;font-size:65%"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:26pt"&gt;Executable program &lt;/span&gt;&lt;/div&gt;  &lt;div class="O1" style="mso-line-spacing:&amp;quot;90 20 0&amp;quot;;mso-margin-left-alt:422; mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%"&gt;&lt;span style="mso-special-format:bullet;color:#3B812F; mso-color-index:5;position:absolute;left:-4.48%;top:.61em;font-family:Wingdings; font-size:60%"&gt;q&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt"&gt;&lt;a href="http://cid-bbc15003189d7799.skydrive.live.com/self.aspx/Public/surflogger/SurfLogger.exe"&gt;SurfLogger.exe &lt;/a&gt;&lt;/span&gt;&lt;/div&gt;  &lt;div class="O" style="mso-line-spacing:&amp;quot;100 50 0&amp;quot;;mso-margin-left-alt:216; mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p:colorscheme&gt;&lt;/div&gt;&lt;div id="jot-content0" class="goog-ws-content goog-ws-content-ie goog-ws-clear" style="color: rgb(0, 0, 0);   margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; min-height: 150px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; font-family:Arial, Verdana, sans-serif;font-size:12px;"&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;3. Data Processing Methods:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;To be added soon.  :-P&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Rights&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;br /&gt;You are free to use this tool for non-commercial purpose.  Use by commercial companies or organizations must get permission from the author, He, Jibo. &lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold;font-size:18px;"&gt;Download&lt;/span&gt;&lt;/div&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;p:colorscheme colors="#ffffff,#000000,#5f5f5f,#006633,#cc9900,#3b812f,#996600,#afbf39"&gt;  &lt;div shape="_x0000_s1026"&gt;  &lt;div class="O" style="mso-line-spacing:&amp;quot;100 20 0&amp;quot;;mso-margin-left-alt:216; mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:144%;"&gt;&lt;span style="mso-special-format:bullet;mso-color-index:4;position:absolute; left:-5.09%;top:.49em;font-family:Wingdings;font-size:65%;color:#CC9900;"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:26pt;"&gt;Source code:&lt;/span&gt;&lt;/div&gt;  &lt;div class="O1" style="mso-line-spacing:&amp;quot;100 20 0&amp;quot;;mso-margin-left-alt:422; mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%;"&gt;&lt;span style="mso-special-format:bullet; mso-color-index:5;position:absolute;left:-5.1%;top:.61em; font-family:Wingdings;font-size:60%;color:#3B812F;"&gt;q&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt;"&gt;SurfLogger.pyw and run.py &lt;/span&gt;&lt;/div&gt;  &lt;div class="O1" style="mso-line-spacing:&amp;quot;100 20 0&amp;quot;;mso-margin-left-alt:422; mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%;"&gt;&lt;span style="mso-special-format:bullet; mso-color-index:5;position:absolute;left:-5.1%;top:.61em; font-family:Wingdings;font-size:60%;color:#3B812F;"&gt;q&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt;"&gt;Dependencies: &lt;/span&gt;&lt;/div&gt;  &lt;div class="O2" style="mso-line-spacing:&amp;quot;100 20 0&amp;quot;;mso-margin-left-alt:644; mso-text-indent-alt:423;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%;"&gt;&lt;span style="mso-special-format:bullet; mso-color-index:4;position:absolute;left:-5.67%;top:.49em; font-family:Wingdings;font-size:65%;color:#CC9900;"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt;"&gt;PsychoPy &lt;/span&gt;&lt;span style="font-size:22pt;"&gt;&lt;p:onmouseclick hyperlinktype="url" href="http://www.psychopy.org/"&gt;&lt;a href="http://www.psychopy.org/" target="_parent" onclick="window.event.cancelBubble=true;" style="position: relative"&gt;http://www.psychopy.org/&lt;/a&gt;&lt;/p:onmouseclick&gt;&lt;/span&gt;&lt;span style="font-size:22pt;"&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt; &lt;/span&gt;&lt;/div&gt;  &lt;div class="O2" style="mso-line-spacing:&amp;quot;100 20 0&amp;quot;;mso-margin-left-alt:644; mso-text-indent-alt:423;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%;"&gt;&lt;span style="mso-special-format:bullet; mso-color-index:4;position:absolute;left:-5.67%;top:.49em; font-family:Wingdings;font-size:65%;color:#CC9900;"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt;"&gt;wxPython &lt;/span&gt;&lt;span style="font-size:22pt;"&gt;&lt;p:onmouseclick hyperlinktype="url" href="http://www.wxpython.org/"&gt;&lt;a href="http://www.wxpython.org/" target="_parent" onclick="window.event.cancelBubble=true;" style="position: relative"&gt;http://www.wxpython.org&lt;/a&gt;&lt;/p:onmouseclick&gt;&lt;/span&gt;&lt;span style="font-size:22pt;"&gt; &lt;/span&gt;&lt;/div&gt;  &lt;div class="O" style="mso-line-spacing:&amp;quot;100 20 0&amp;quot;;mso-margin-left-alt:216; mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:144%;"&gt;&lt;span style="mso-special-format:bullet;mso-color-index:4;position:absolute; left:-5.09%;top:.49em;font-family:Wingdings;font-size:65%;color:#CC9900;"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:26pt;"&gt;Executable program &lt;/span&gt;&lt;/div&gt;  &lt;div class="O1" style="mso-line-spacing:&amp;quot;100 20 0&amp;quot;;mso-margin-left-alt:422; mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="font-size:122%;"&gt;&lt;span style="mso-special-format:bullet; mso-color-index:5;position:absolute;left:-5.1%;top:.61em; font-family:Wingdings;font-size:60%;color:#3B812F;"&gt;q&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt;"&gt;SurfLogger.exe &lt;/span&gt;&lt;/div&gt;  &lt;div class="O1" style="mso-line-spacing:&amp;quot;100 20 0&amp;quot;;mso-margin-left-alt:422; mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;span style="visibility:hidden;font-size:122%;"&gt;&lt;span style="mso-special-format:bullet; mso-color-index:5;position:absolute;left:-5.1%; font-family:Wingdings;font-size:60%;color:#3B812F;"&gt;q&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:22pt;"&gt; &lt;/span&gt;&lt;/div&gt;  &lt;div class="O" style="mso-line-spacing:&amp;quot;100 50 0&amp;quot;;mso-margin-left-alt:216; mso-char-wrap:1;mso-kinsoku-overflow:1"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p:colorscheme&gt;&lt;div id="jot-content0" class="goog-ws-content goog-ws-content-ie goog-ws-clear" style="color: rgb(0, 0, 0);   margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; min-height: 150px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; font-family:Arial, Verdana, sans-serif;font-size:12px;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold;font-size:18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="jot-content0" class="goog-ws-content goog-ws-content-ie goog-ws-clear" face="Arial, Verdana, sans-serif" size="12px" style="color: rgb(0, 0, 0);   margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; min-height: 150px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;hr width="100%"  style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size:85%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Contact&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr size="2" width="100%" style="background-color: rgb(217, 208, 185); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; color: rgb(217, 208, 185); height: 2px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;Feel free to contact me for help and information. If you would like to help me with the development, do please let me know. &lt;br /&gt;&lt;br /&gt;Department of Psychology,&lt;br /&gt;Beckman Institute for Advanced Science and Technology&lt;br /&gt;University of Illinois, Urbana Champaign,&lt;br /&gt;603 East Daniel St.,&lt;br /&gt;Champaign, IL 61820&lt;br /&gt;Tel: 217-244-4461(office)&lt;br /&gt;217-244-6763(lab)&lt;br /&gt;Email: hejibo@gmail.com &lt;br /&gt;MSN: hejibopku@hotmail.com&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-7347994314688955234?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/7347994314688955234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=7347994314688955234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/7347994314688955234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/7347994314688955234'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/11/surflogger-logging-browser-and-data.html' title='SurfLogger: A Logging Browser and Data Processing Method'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-819809432212073653</id><published>2008-10-30T09:46:00.001-07:00</published><updated>2008-11-29T11:35:50.486-08:00</updated><title type='text'>####Matlab Programming Notes####</title><content type='html'>&lt;DIV id=utbi&gt;&lt;BR id=qhsl&gt;&lt;B id=utbi0&gt;&lt;FONT id=utbi1 size=4&gt;####Matlab Programming Notes####&lt;/FONT&gt;&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=utbi2&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=utbi3&gt;by He, Jibo for Psych 593 &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=utbi4&gt;Course Link: &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=hr2-&gt;&lt;A id=hr2-0 href="http://www.psych.uiuc.edu/~alleras/classwelcome.htm"&gt;http://www.psych.uiuc.edu/~alleras/classwelcome.htm&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;exam: &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;A href="http://www.psych.uiuc.edu/~alleras/exam.htm"&gt;http://www.psych.uiuc.edu/~alleras/exam.htm&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s7km&gt;&lt;B id=dipi&gt;Resources for psychtoolbox&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s7km0&gt;&lt;A id=homepage_link href="http://psychtoolbox.org/wikka.php?wakka=HomePage"&gt;&lt;FONT id=u9to color=#000000&gt;Psychtoolbox Wiki&lt;/FONT&gt;&lt;/A&gt;: &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s7km1&gt;&lt;A id=s7km2 href="http://psychtoolbox.org/wikka.php?wakka=HomePage"&gt;http://psychtoolbox.org/wikka.php?wakka=HomePage&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;Psychtoolbox 2.0 &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;A href="http://psychtoolbox.org/PTB-2/"&gt;http://psychtoolbox.org/PTB-2/&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=t0h_&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;Eyelink toolbox &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;A href="http://www.psychtoolbox.org/wikka.php?wakka=EyelinkToolboxCredits"&gt;http://www.psychtoolbox.org/wikka.php?wakka=EyelinkToolboxCredits&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=jzyh&gt;PTB tutorial @ Silver lab - University of California, Berkeley &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=jzyh0&gt;&lt;A id=jzyh1 href="http://argentum.ucbso.berkeley.edu/PTBtutorial"&gt;http://argentum.ucbso.berkeley.edu/PTBtutorial&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=t-i3&gt;Matlab for the Behavioral Sciences: How to program your own experiment. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=t-i30&gt;&lt;A id=t-i31 href="http://faculty.washington.edu/ionefine/MatlabCourseNotes08.html"&gt;http://faculty.washington.edu/ionefine/MatlabCourseNotes08.html&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=xolc&gt;&lt;FONT id=xolc0 face=CMR12 size=5&gt;&lt;br /&gt;&lt;P id=xolc1&gt;An Introduction to Matlab &lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=t-i32&gt;&amp;nbsp;&lt;A id=ruth href="http://www.maths.dundee.ac.uk/~ftp/na-reports/MatlabNotes.pdf"&gt;http://www.maths.dundee.ac.uk/~ftp/na-reports/MatlabNotes.pdf&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=z53r&gt;Matlab style guidelines &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=z53r0&gt;&lt;A id=z53r1 href="http://www.datatool.com/downloads/matlab_style_guidelines.pdf"&gt;http://www.datatool.com/downloads/matlab_style_guidelines.pdf&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;H2&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular&gt;&lt;A name=helpPsychtoolbox&gt;&lt;/A&gt;Help for Psychtoolbox&lt;/FONT&gt; &lt;/H2&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt;&lt;LI&gt;&lt;FONT face="Verdana, Arial, Helvetica, sans-serif"&gt;For beginners: &lt;A href="http://psychtoolbox.org/PTB-2/tutorial.html"&gt;Psychtoolbox Tutorial&lt;/A&gt; and &lt;A href="http://psychtoolbox.org/PTB-2/download/FineTutorial/revision_2/MatClassAll.pdf"&gt;Ione Fine's Psychtoolbox Tutorial&lt;/A&gt;.&lt;/FONT&gt; &lt;br /&gt;&lt;LI&gt;&lt;FONT face="Verdana, Arial, Helvetica, sans-serif"&gt;The Psychtoolbox includes built-in help available from the MATLAB command line. &lt;/FONT&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt;&lt;LI&gt;&lt;FONT face="Verdana, Arial, Helvetica, sans-serif"&gt;Enter &lt;B&gt;"help Psychtoolbox"&lt;/B&gt; at the MATLAB prompt for a list of Psychtoolbox function categories.&lt;/FONT&gt; &lt;br /&gt;&lt;LI&gt;&lt;FONT face="Verdana, Arial, Helvetica, sans-serif"&gt;To display a list of Psychtoolbox functions within a category ask for help with the category, e.g. "help PsychBasic."&lt;/FONT&gt; &lt;br /&gt;&lt;LI&gt;&lt;FONT face="Verdana, Arial, Helvetica, sans-serif"&gt;To get help for a Psychtoolbox function ask for help on the function, e.g. "help GetChar." &lt;/FONT&gt;&lt;br /&gt;&lt;LI&gt;&lt;FONT face="Verdana, Arial, Helvetica, sans-serif"&gt;Psychtoolbox functions such as Screen,which accept a subcommand as an argument, include built-in help for there subcommands.&lt;/FONT&gt; &lt;br /&gt;&lt;UL&gt;&lt;br /&gt;&lt;LI&gt;&lt;FONT face="Verdana, Arial, Helvetica, sans-serif"&gt;For a list of all subcommands issue the function call with no arguments, e.g. enter "Screen" at the command line. &lt;/FONT&gt;&lt;br /&gt;&lt;LI&gt;&lt;FONT face="Verdana, Arial, Helvetica, sans-serif"&gt;To display documentation for a subcommand invoke the subcommand with a trailing question mark, e.g. Screen('OpenWindow?')&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;br /&gt;&lt;LI&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular&gt;Read our answers to &lt;A href="http://psychtoolbox.org/PTB-2/questions.html"&gt;&lt;FONT color=#800080&gt;frequently asked questions&lt;/FONT&gt;&lt;/A&gt;. &lt;/FONT&gt;&lt;br /&gt;&lt;LI&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular&gt;Your friends and colleagues might help. Check out the &lt;A href="http://groups.yahoo.com/group/psychtoolbox/messages"&gt;Psychtoolbox forum&lt;/A&gt;.&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;br /&gt;&lt;H2&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular size=7&gt;&lt;B&gt;&lt;A name=helpMatlab&gt;&lt;/A&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular&gt;Help for MATLAB&lt;/FONT&gt; &lt;/H2&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt;&lt;LI&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular&gt;Typing "doc" in MATLAB will activate their browser-based help system, which is quite handy.&lt;/FONT&gt; &lt;br /&gt;&lt;LI&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular&gt;You can &lt;A href="http://www.mathworks.com/support/solutions/"&gt;search&lt;/A&gt; the Mathworks web site. &lt;/FONT&gt;&lt;br /&gt;&lt;LI&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular&gt;There's an active MATLAB &lt;A href="news://comp.sys.lang.matlab/"&gt;newsgroup&lt;/A&gt; (mostly Windows and unix users).&lt;/FONT&gt; &lt;br /&gt;&lt;LI&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular&gt;Typing "help" and "help help" at the MATLAB command line will list help topics and explain MATLAB help. &lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=u6ng&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=hr2-1&gt;&lt;br /&gt;&lt;HR id=yo6t&gt;&lt;br /&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=utbi5&gt;&lt;B id=yo6t0&gt;--2008/8/28--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=utbi6&gt;&lt;B id=yo6t1&gt;--Lecture 1--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=utbi7&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=njaa&gt;1. Monitor and graphics card (VRAM) &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=on1.&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=up9m&gt;&lt;SPAN class=BB id=up9m0&gt;•&lt;/SPAN&gt;2. Dynamic Random Access Memory (D)RAM &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=on1.0&gt;&lt;IMG id=on1.1 src="http://www.psych.uiuc.edu/~alleras/images/computer-memory-pyramid.gif"&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=utbi8&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=utbi9&gt;–# L1 cache - 10 nanoseconds, 4 kilobytes to 16 kilobytes in size &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=gjf4&gt;–# L2 cache - around 20 to 30 nanoseconds, 128 kilobytes to 512 kilobytes in size) (some L3) &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=gjf40&gt;–# Main memory - Memory access of type RAM (around 60 nanoseconds, 32 megabytes to Gigabytes in size) &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=mrfy&gt;&lt;BR id=ppf-&gt;3. &amp;nbsp;CRT Monitors and VGA: &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=l3ta&gt;&lt;B id=s4bb&gt;&amp;nbsp;Red, Green, and Blue&amp;nbsp; Phosphor(&lt;/B&gt;磷光体;磷光剂&lt;B id=p65w&gt;) dots&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=t2jc&gt;&lt;B id=t2jc0&gt;&amp;nbsp;Analog&lt;/B&gt; ergo the video/graphics adapter &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=p65w0&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=p65w1&gt;&lt;B id=dz9l&gt;Dot pitch&lt;/B&gt; (distance of two adjacent same color&amp;nbsp;) and resolution &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=hfis0&gt;&amp;nbsp;The gun shots light on the monitor line by line. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=anit&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=anit0&gt;4. LCD Monitors &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=anit1&gt;•Digital &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=anit2&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=anit3&gt;&lt;B id=q1:f&gt;&lt;FONT id=q1:f0 style="BACKGROUND-COLOR: #ffff00"&gt;Notes:&lt;/FONT&gt;&lt;/B&gt; We can not make sure the exact time for stimuli on display and energy of the stimuli for LCD monitors. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=wc6v&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=cz_j&gt;5. Matlab &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=cz_j0&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=fr3o&gt;•MATrix LABoratory:&lt;BR id=cz_j2&gt;–High-level language •&lt;U id=l6cq&gt;slow to interpret by machine •easy to understand by humans&lt;/U&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=l6cq0&gt;• –I will teach you “syntax” •Algorithm based &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=l6cq1&gt;• –Our vocabulary will be MATRICES.&lt;BR id=cz_j3&gt;&amp;nbsp;MATLAB is optimized for matrix-based calculations &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=hfis1&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=mrfy0&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=mrfy1&gt;&lt;FONT id=b48q style="BACKGROUND-COLOR: #ff0000"&gt;&amp;nbsp;6.A few important commands&lt;/FONT&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=aj9e&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=aj9e1&gt;&lt;SPAN class=BB id=aj9e2&gt;•&lt;/SPAN&gt;&lt;B id=aj9e3&gt;SET PATH! &lt;/B&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=aj9e14&gt;- Window or in command line: &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=tglx&gt;&amp;nbsp;–Setting the path in your code: – &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=tglx0&gt;&amp;gt;p=path; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=tglx1&gt;–&amp;gt;path(p,‘o:\MatlabCourse’); &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=tglx2&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_89&gt;•pwd: Where are you? &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_890&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_891&gt;•cd: Change Directory &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_892&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_893&gt;•dir: lists contents of folder &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_894&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_895&gt;•mkdir: makes a new directory • &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_896&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_897&gt;•who: lists of variables in workspace &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_898&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_899&gt;•whos: who +&amp;nbsp; size of variables &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_8910&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_8911&gt;•clear X: erases X &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_8912&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_8913&gt;•clear all: erases all. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=e0a7&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=e0a70&gt;•help topic &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=e0a71&gt;&lt;BR id=e0a72&gt;•lookfor string&amp;nbsp;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=f_8914&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=t0c7&gt;&lt;B id=t0c70&gt;7. Matrices&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=t0c71&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=t0c72&gt;&amp;nbsp;First mentioned dimension is ALWAYS the number of rows&lt;BR id=t0c73&gt;Second dimension = number of columns &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=mrfy2&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=syo2&gt;&lt;FONT id=syo21 style="BACKGROUND-COLOR: #ff0000"&gt;•&lt;/FONT&gt;&lt;SPAN id=syo22 style="FONT-SIZE: 88%"&gt;&lt;FONT id=syo23 style="BACKGROUND-COLOR: #ff0000"&gt;8. Name your matrices always lowercase&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=mrfy4&gt;&amp;nbsp; &lt;br /&gt;&lt;HR id=s:ee&gt;&lt;br /&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=af.l&gt;&lt;br /&gt;&lt;DIV id=s:ee0&gt;&lt;B id=s:ee1&gt;--2008/9/4--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s:ee2&gt;&lt;B id=s:ee3&gt;--Lecture 2--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s:ee4&gt;&amp;nbsp; &lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=af.l0&gt;&lt;FONT id=tldx color=#ff0000&gt;&amp;nbsp;1. Attention:&lt;/FONT&gt; , and ; differs!! &lt;/DIV&gt;&lt;br /&gt;&lt;P id=ws4c0&gt;&amp;gt;&amp;gt; e=['world','hello'] &lt;/P&gt;&lt;br /&gt;&lt;P id=ws4c1&gt;e = &lt;/P&gt;&lt;br /&gt;&lt;P id=ws4c2&gt;worldhello &lt;/P&gt;&lt;br /&gt;&lt;P id=ws4c3&gt;&amp;gt;&amp;gt; e=['world';'hello'] &lt;/P&gt;&lt;br /&gt;&lt;P id=ws4c4&gt;e = &lt;/P&gt;&lt;br /&gt;&lt;DIV id=ws4c5&gt;world&lt;BR id=ws4c6&gt;hello&lt;BR id=pzmp&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=tldx0&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=tldx1&gt;&lt;B id=tldx2&gt;2. &amp;nbsp;mod(x,y): remainder of the division of x by y: &lt;/B&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=tldx3&gt;•mod(10,3) = 1 &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=tldx4&gt;•mod(9,3) = 0 &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=tldx5&gt;&amp;nbsp;• •SUPER USEFUL COMMAND (counterbalancing conditions) &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=w2cv&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=w2cv0&gt;&lt;B id=w2cv1&gt;floor.&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=w2cv2&gt;Rounds towards minus infinity. •floor(3.4) = 3 &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=o1tv&gt;&lt;B id=iwav&gt;ceil:&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=o1tv0&gt;rounds towards plus infinity &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=o1tv1&gt;&lt;B id=jnd3&gt;round&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=o1tv2&gt;rounds to nearest integer &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=iwav0&gt;&lt;B id=iwav1&gt;fix&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=iwav2&gt;rounds towards zero &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=iwav3&gt;&lt;B id=exut&gt;CLEAR ALL : clear the workspace&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=exut0&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=exut1&gt;&lt;B id=l.4t&gt;&amp;nbsp;3. Script file&lt;/B&gt; &lt;/DIV&gt;&amp;gt; edit moo.m &lt;br /&gt;&lt;DIV id=l.4t0&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=jzsv&gt;&lt;br /&gt;&lt;DIV id=ljrh&gt;&lt;br /&gt;&lt;DIV class=B id=_x0000_s99331_0_20 style="WIDTH: 93.07%; WHITE-SPACE: nowrap; HEIGHT: 3%"&gt;•FOR EXAMPLE: UofI.m &lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=ljrh0&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=ljrh1&gt;&lt;FONT id=ljrh2 color=#00ff00&gt;•FOR EXAMPLE: UofI.m ØWRITE A SCRIPT TO CALCULATE THE FIRST 10 numbers in the sequence:&lt;BR id=jzsv13&gt;u(n) = u(n-1) x (n+1)&lt;BR id=jzsv14&gt;with u(1) = 1 &lt;/FONT&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=ljrh3&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=kujz&gt;&lt;FONT id=kujz0 color=#00ff00&gt;---solution 1: u.m-----------&lt;/FONT&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=ljrh5&gt;&lt;FONT id=kujz1 face="Courier New" color=#0000ff size=2&gt;&lt;br /&gt;&lt;P id=kujz2&gt;function &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P id=k_:x&gt;&lt;FONT id=kujz3 face="Courier New" size=2&gt;[u]=u(n)&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P id=kujz4&gt;&lt;FONT id=kujz5 face="Courier New" size=2&gt;u(1)=1;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT id=kujz6 face="Courier New" color=#0000ff size=2&gt;&lt;br /&gt;&lt;P id=kujz7&gt;for &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P id=k_:x2&gt;&lt;FONT id=k_:x3 face="Courier New" size=2&gt;i=2:n&lt;/FONT&gt; &lt;/P&gt;&lt;FONT id=k_:x4 face="Courier New" size=2&gt;&lt;br /&gt;&lt;P id=kujz8&gt;u(i)=u(i-1)*(i+1); &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P id=k_:x6&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;end&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P id=dl39&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P id=dl390&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=dl391 color=#000000&gt;---solution 2:uofi.m----&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P id=wrm5&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih5 face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P id=qih50&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih5 face="Courier New" size=2&gt;u=zeros(10,1);&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P id=qih51&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih5 face="Courier New" size=2&gt;u(1)=1;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih5 face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;FONT id=hhpp0 face="Courier New" color=#0000ff size=2&gt;&lt;br /&gt;&lt;P id=hhpp1&gt;for &lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P id=qih52&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih53 face="Courier New" size=2&gt;&lt;FONT id=qih54 color=#000000&gt;n=2:10&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih55 face="Courier New" size=2&gt;&lt;br /&gt;&lt;P id=hhpp2&gt;u(n,1)=u(n-1,1).*(n+1); &lt;/P&gt;&lt;/FONT&gt;&lt;FONT id=qih56 face="Courier New" color=#0000ff size=2&gt;&lt;br /&gt;&lt;P id=qih57&gt;end &lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P id=qih59&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih58 face="Courier New" size=2&gt;u&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P id=qih511&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih58 face="Courier New" size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P id=kld7&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih58 face="Courier New" size=2&gt;&lt;FONT id=kld70 color=#000000&gt;&amp;nbsp;It would be even nicer, if we asked the user the first value of the series. – &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P id=kld71&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih58 face="Courier New" size=2&gt;&lt;FONT id=kld72 color=#000000&gt;–Use ‘input’ – –Syntax:&amp;nbsp;&lt;BR id=kld73&gt;&lt;FONT id=epwt color=#00ff00&gt;VAR = input(‘your text here’); – (EVALUATED INPUT)&lt;/FONT&gt;&lt;BR id=kld74&gt;–For entering strings of characters&lt;BR id=kld75&gt;&lt;FONT id=epwt0 color=#00ff00&gt;VAR = input(‘Your text here’,’s’); – (NOT EVALUATED INPUT)&lt;/FONT&gt;&lt;/FONT&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P id=wdsq2&gt;&lt;FONT id=k_:x5 face="Courier New" color=#0000ff size=2&gt;&lt;FONT id=qih58 face="Courier New" size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=n2pc&gt;&lt;B id=pc5.&gt;4. logic expression&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=n2pc0&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=rim5&gt;LOGIC&amp;nbsp; p.8 &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=rn0m&gt;•AND: &amp;amp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=rn0m0&gt;•OR: | &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=rn0m1&gt;•Complement: ~ &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=rn0m2&gt;•Exclusive OR:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xor (when a is true or b is true, but not true at the same time)&lt;BR id=nzum&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=i9xn&gt;&lt;B id=pc5.0&gt;5. loop control&lt;/B&gt; &lt;/DIV&gt;&lt;B id=jbk-0&gt;&lt;br /&gt;&lt;P id=jbk-1&gt;SWITCH:&lt;BR id=jbk-2&gt;syntax &lt;/P&gt;&lt;/B&gt;&lt;br /&gt;&lt;P id=z_af&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P id=jbk-3&gt;•More generally, if testing the value inside variable 'n' &lt;/P&gt;&lt;br /&gt;&lt;P id=jbk-4&gt;•switch n &lt;/P&gt;&lt;br /&gt;&lt;P id=jbk-5&gt;• case n1 &lt;/P&gt;&lt;br /&gt;&lt;P id=jbk-6&gt;• … &lt;/P&gt;&lt;br /&gt;&lt;P id=jbk-7&gt;• case n2 &lt;/P&gt;&lt;br /&gt;&lt;P id=jbk-8&gt;• … &lt;/P&gt;&lt;br /&gt;&lt;P id=jbk-9&gt;• otherwise &lt;/P&gt;&lt;br /&gt;&lt;P id=jbk-10&gt;• … &lt;/P&gt;&lt;br /&gt;&lt;P id=jbk-11&gt;•end &lt;/P&gt;&lt;br /&gt;&lt;DIV id=s:o6&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s:o60&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s:o61&gt;HOMEWORK &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s:o62&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;HR id=s:ee&gt;&lt;br /&gt;&lt;br /&gt;&lt;DIV id=af.l&gt;&lt;br /&gt;&lt;DIV id=s:ee0&gt;&lt;B id=s:ee1&gt;--2008/9/11--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s:ee2&gt;&lt;B id=s:ee3&gt;--Lecture 3--&lt;/B&gt; &lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;disp('hello world') &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;% display a string or expression, equals print or printf in python or C &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;gt;&amp;gt; disp('type ''q''')&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% double single quotes to input ' in the string&lt;BR&gt;type 'q' &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR id=gpcu&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#228b22 size=2&gt;%Write a program that asks user for PIN number, until user gets it right.&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;correctPin = 1234; &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;true =1; &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;counter=0; &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;while&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; true&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;guessPin=input(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'Please input your PIN,type q to quit:\n'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;)&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;counter=counter+1; &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; guessPin==correctPin&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;disp(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'you input the correct PIN\n'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;)&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;break&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;elseif&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; guessPin==&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'q'&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;disp(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'you quited successfully\n'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;)&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;break&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;else&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;disp(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'you input the wrong PIN\n'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;)&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;end&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; counter==3&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;disp(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'you failed for three times!\n'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;)&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;break&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;end&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;end&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;B&gt;find &lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;–FINDS a specific value in an array (or matrix) and returns the &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;–SYNTAX:&lt;BR&gt;indeces = find(expression); &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;–returns indeces for which expression is true.&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;B&gt;Lookfor:&lt;/B&gt;&lt;/FONT&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;to look for help with keywords&lt;/FONT&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;HR id=s:ee&gt;&lt;br /&gt;&lt;br /&gt;&lt;DIV id=af.l&gt;&lt;br /&gt;&lt;DIV id=s:ee0&gt;&lt;B id=s:ee1&gt;--2008/9/17--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s:ee2&gt;&lt;B id=s:ee3&gt;--Lecture 4--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Functions &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;•- can take input (passing variables) &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;•- can return outputs. &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;-variables are internal. &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;-NAME OF M-FILE AND FUNCTION HAVE TO BE THE SAME.&lt;/FONT&gt; &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;------example of function:----------- &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;SPAN style="FONT-SIZE: 63%"&gt;&lt;FONT size=1&gt;function output = nameoffunction(passvar1,passvar2…); &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;&lt;FONT color=#ff0000&gt;Persistent Variables&lt;/FONT&gt;&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•If you want a function to keep accessing a variable, every time you run it, declare the variable as &lt;I&gt;persistent. &lt;/I&gt;&lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;•In other words, Matlab will NOT erase it upon exiting the function, so it will be able to access it again. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;GLOBAL variables: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;• -&amp;gt; can be used ANYWHERE… &lt;/P&gt;&lt;br /&gt;&lt;P&gt;• &lt;I&gt;modified anywhere too! &lt;/I&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;• &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•PERSISTENT variables: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;• -&amp;gt; allow you to have some values persist in memory from one function use to the next. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;• -&amp;gt; UNTOUCHABLES!! outside of function. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;• &lt;/P&gt;&lt;br /&gt;&lt;P&gt;• -&amp;gt; beware of what's lurking under the surface. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;For further reading… &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;•&amp;gt; &lt;I&gt;anonymous&lt;/I&gt; functions (do not require an m-file) &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;• &amp;gt; f = @(arglist)expression &lt;/P&gt;&lt;br /&gt;&lt;P&gt;• &amp;gt; sqr = @(x) x.^2; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•&amp;gt; &lt;I&gt;subfunctions&lt;/I&gt; are created within a function &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•&amp;gt; &lt;B&gt;&lt;I&gt;private &lt;/I&gt;functions:&lt;/B&gt; only visible to their parent directory scripts. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•&amp;gt; &lt;B&gt;&lt;I&gt;nested &lt;/I&gt;functions:&lt;/B&gt; share variables. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;SAVING AND READING MATRICES &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;•save NAME &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–saves ALL the variables in your workplace, regardless of differences in format, on file NAME.mat &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–Type: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–&amp;gt; clear all %CHECK WORKSPACE &lt;/P&gt;&lt;br /&gt;&lt;P&gt;– %CHECK CURRENT DIR. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–&amp;gt; load Worlds &lt;/P&gt;&lt;br /&gt;&lt;P&gt;save NAME var1 var2 &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–specifies which variables to save in file NAME.mat &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•if you want to ADD stuff to a current mat file: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–save NAME var1 -append &lt;/P&gt;&lt;br /&gt;&lt;P&gt;wilcard * &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•save avariables a* %saves all variables starting with a in file avariables.mat &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;reading text is different than reading numbers, but you can transform one into the other: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–num2str: transforms numbers into strings &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–int2str: transforms integers into strings &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–mat2str: transforms 2D matrices into strings &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–char: convert to character array. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–print to screen: sprintf &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–print to file: fprintf &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–read from string: sscanf &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–read from file: fscanf &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;---------file operation---------&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp;fid = &lt;B&gt;fopen&lt;/B&gt;(filename) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;SPAN class=B1B&gt;–&lt;/SPAN&gt;fclose(fid) %0 means success. &lt;/P&gt;&lt;br /&gt;&lt;DIV class=B2 id=_x0000_s181251_53_77 style="WIDTH: 83.14%; WHITE-SPACE: nowrap; HEIGHT: 5.25%"&gt;&lt;SPAN style="WIDTH: 97.07%; HEIGHT: 100%"&gt;•&lt;B&gt;%don’t suppress output&lt;/B&gt;. &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;firstline = fgetl(fid) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;%don’t suppress output&lt;/B&gt;. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;SPAN class=B1B&gt;–&lt;/SPAN&gt;nextline = fgets(fid) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;% fgetl reads a line but does NOT copy the end of line character to the string. &lt;B&gt;fgets&lt;/B&gt; does. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;feof(fid) : 0 while not end of file&amp;nbsp;, 1 once it is found. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;fprintf(fileID, PRINTING FORMAT, variable). &lt;/P&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;br /&gt;&lt;P&gt;•Most common conversion characters. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–%c single character &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–%d decimal notation &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–%s string of characters &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–INSIDE PRINTING area: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•\n new line &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;•\t horizontal tab &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;br /&gt;&lt;P&gt;Rather than printing the text to the screen, let’s transfer it to another file. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–newfid = fopen(‘newgoldi.txt’,’w’); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–fprintf(newfid, ‘%s \n’, newline); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;– &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–‘w’ means write to this new file. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–‘r’ means open to read. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–‘rt’ reads as text. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–‘a’ means append (add at the end). &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;FIND SPACE CHARACTERS IN FIRST LINE. &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;–&lt;B&gt;&amp;gt; spaces = find(firstline == ' ')&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;strcmp: compare whether two strings are the same&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;&amp;nbsp;&lt;/B&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;HR id=s:ee&gt;&lt;br /&gt;&lt;br /&gt;&lt;DIV id=af.l&gt;&lt;br /&gt;&lt;DIV id=s:ee0&gt;&lt;B id=s:ee1&gt;--2008/9/25--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s:ee2&gt;&lt;B id=s:ee3&gt;--Lecture 5--&lt;/B&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Intermixing text and variables&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•fprintf('This is trial %2d.\n', trial); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•for count=1:10 &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–fprintf('This is trial %2d, and condition %d\n.',trial(count), condition(count)); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–end; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Exercise&lt;/B&gt; --result display: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•Create a three column matrix with: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•first column: numbers from 1-10. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•second column: alternating 0-1. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•third column: random number between 150 and 1000. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•WRITE TO screen: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;–think trial number, condition, RT. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Answer--&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;data = zeros(10,3); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;data(:,1)=1:10; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;data(:,2)=mod(data(:,1),2); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;data(:,3)=rand(1,10)*850 +150; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT color=#cccccc&gt;%writes data column-wise. &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT color=#cccccc&gt;%Treats matrix as comma-delimited list. &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT color=#cccccc&gt;%CONTINUES EXECUTION until all the specified variables HAVE BEEN PRINTED. &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT color=#cccccc&gt;%what we want is:&lt;BR&gt;%data': the transposition of data&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;fprintf('%2d %d %3.1f\n',data&lt;FONT color=#ff0000&gt;'&lt;/FONT&gt;); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Last issue.&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•How do you print a ' or % or \ with fprintf?&lt;BR&gt;ex: it's a beautiful day!&lt;BR&gt;ex: I'm 100% certain 2\4=2. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;• &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;•Answer: you double the escape character to make it printable (page17)&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•&amp;gt; fprintf('I''m 100%% certain 2\\4=2.') &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;###########IMAGE########### &lt;/P&gt;&lt;br /&gt;&lt;P&gt;IMAGES (1) p. 22 &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;Let's play with Matlab's demo: &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;Type: &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;&amp;gt; clear all &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;&amp;gt; load durer %check workspace. &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;&amp;gt; image(X) %what happened? &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;&amp;gt; colormap(map) %ruminate on this… &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;&amp;gt; axis equal &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;&amp;gt; axis image %same as equal, but image fits tightly &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;&amp;gt; axis off %turns off tick marks &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Other types of images &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;•You can load TIFF, JPEG, BMP… with &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;•imread &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;•[X,map] = imread(filename,ext); &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;Write images to files &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt;Let's make and save a random b/w mask image. &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;•&lt;B&gt; imwrite(matrix,'nameoffile','extension')&lt;BR&gt;%imwrite(matrix,colormap,'nof','ext') for indexed images &lt;/B&gt;&lt;/P&gt;&lt;B&gt;&lt;/B&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;mask = rand(400,400);&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;imwrite(mask,&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'mask'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;,&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'bmp'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;);&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;clear &lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;all&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;[x,map]=imread(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'mask'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;,&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'bmp'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;);&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;image(x);&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;colormap(map);&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&lt;B&gt;Let's make and save a random color-noise mask image -unindexed &lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;B&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&lt;B&gt;&amp;gt; mask2 = rand(400,400,3); %why 3? &lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;B&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&lt;B&gt;&amp;gt; imwrite(mask2,'mask2','jpg'); &lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;B&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&amp;gt; clear all; &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&amp;gt; input('click key when ready'); &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&amp;gt; X = imread('mask2','jpg'); &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&amp;gt; image(X); &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&amp;gt; colormap(map); &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&amp;gt; input('click key when ready'); &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;•&amp;gt; colormap(hot);&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;&lt;br /&gt;&lt;DIV style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: 6.75pt double; PADDING-LEFT: 0cm; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 1pt; BORDER-BOTTOM: 6.75pt double"&gt;&lt;br /&gt;&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=6&gt;Matlab homework5&lt;/FONT&gt;&lt;/B&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P class=MsoNormal&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal style="MARGIN-LEFT: 18pt"&gt;&lt;B&gt;1.&lt;SPAN style="FONT-WEIGHT: normal; FONT-STYLE: normal; FONT-FAMILY: 'Times New Roman'; FONT-VARIANT: normal; font-size-adjust: none; font-stretch: normal"&gt;&lt;FONT size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;durernoise.m &lt;/B&gt;&lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal style="MARGIN-LEFT: 18pt"&gt;&lt;B&gt;Create a program that creates 5 different versions of the durer image with increasing levels of noise, using the same grayscale(256) CLUT, all in one single image (BMP).&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal&gt;&amp;nbsp;Level of noise is measured the deviation of the noise from the actual value of the pixel.&lt;BR&gt;&lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal&gt;use the following as an example: &lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal&gt;&lt;BR&gt;&lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal&gt;&amp;gt;&amp;gt; z = mod(X + (rand(size(X)).*32 - 16),128);&lt;BR&gt;&amp;gt;&amp;gt; image(z) &lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal&gt;&lt;BR&gt;&lt;/P&gt;&lt;br /&gt;&lt;DIV class=MsoNormal&gt;% Author; He, Jibo, 09/26/2008&lt;BR&gt;%Goal:&lt;BR&gt;%Create a program that creates 5 different versions of the durer image with&lt;BR&gt;%increasing levels of noise, using the same grayscale(256) CLUT, all in one&lt;BR&gt;%single image (BMP).&lt;BR&gt;load durer;&lt;BR&gt;colormap(gray(256));&lt;BR&gt;% create the image with noise&lt;BR&gt;NoiseLevel1=mod(X+(rand(size(X)).*4-2),128);&lt;BR&gt;NoiseLevel2=mod(X+(rand(size(X)).*8-4),128);&lt;BR&gt;NoiseLevel3=mod(X+(rand(size(X)).*16-8),128);&lt;BR&gt;NoiseLevel4=mod(X+(rand(size(X)).*32-16),128);&lt;BR&gt;NoiseLevel5=mod(X+(rand(size(X)).*64-32),128);&lt;BR&gt;combine=[NoiseLevel1'; NoiseLevel2';NoiseLevel3';NoiseLevel4';NoiseLevel5'];&lt;BR&gt;image(combine');&lt;BR&gt;&lt;BR&gt;% to polish the graph&lt;BR&gt;axis off;&lt;BR&gt;axis image;&lt;BR&gt;xlabel 'Figure 1. Durer image with increasing levels of noise from left to right';&lt;BR&gt;&lt;BR&gt;% write image&lt;BR&gt;imwrite(combine',gray(256),'Durer.bmp','bmp'); &lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=MsoNormal&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=MsoNormal&gt;&lt;B&gt;&lt;FONT color=#cc0000&gt;Professor's solution:&lt;/FONT&gt;&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=MsoNormal&gt;&lt;br /&gt;&lt;P&gt;Indexed image: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;load durer; %gives me X and map &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;%I am going to create five matrices Xnoi which will be copies of X with &lt;/P&gt;&lt;br /&gt;&lt;P&gt;%increasing noise &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Xnoi = X + rand(648,509).*60 -30; %noise here is created by randomly &lt;/P&gt;&lt;br /&gt;&lt;P&gt;%varying the luminance of a pixel &lt;/P&gt;&lt;br /&gt;&lt;P&gt;%the total range of luminance is &lt;/P&gt;&lt;br /&gt;&lt;P&gt;%124, so 30 is about 1/4 of that. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;B&gt;&lt;br /&gt;&lt;P&gt;%PROBLEM: some indeces will be lower than 1 or larger than 128... &lt;/P&gt;&lt;br /&gt;&lt;P&gt;% so we correct for that. However you would like to do it! &lt;/P&gt;&lt;/B&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;below = find(Xnoi &amp;lt; 1); %find values of Xnoi that go below the colormap %index of 1 &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Xnoi(below) = 1; %for those values, we reassign a low luminance %value. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;% the same in all cases! &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;above=find(Xnoi&amp;gt;128); % we do the same for indeces larger than 128. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Xnoi(above)= 128; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P class=MsoNormal style="MARGIN-LEFT: 18pt"&gt;2.&lt;SPAN style="FONT-WEIGHT: normal; FONT-STYLE: normal; FONT-FAMILY: 'Times New Roman'; FONT-VARIANT: normal; font-size-adjust: none; font-stretch: normal"&gt;&lt;FONT size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;rgbnoise.m &lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal style="MARGIN-LEFT: 18pt"&gt;Create a programm that takes the visionlab jpg logo and presents it in 2 different levels of black and white noise and two different levels of color noise, all in one single image that includes the untouched original. 3. Submit both images and corresponding script files. &lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal style="MARGIN-LEFT: 18pt"&gt;&lt;FONT size=5&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal style="MARGIN-LEFT: 18pt"&gt;&lt;FONT size=5&gt;&lt;SPAN style="FONT-SIZE: 56%"&gt;&lt;A href="http://www.psych.uiuc.edu/~alleras/courseImages.htm" target=_parent&gt;www.psych.uiuc.edu/~alleras/courseImages.htm&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P class=MsoNormal style="MARGIN-LEFT: 18pt"&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 56%"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;HR id=s:ee&gt;&lt;br /&gt;&lt;br /&gt;&lt;DIV id=af.l&gt;&lt;br /&gt;&lt;DIV id=s:ee0&gt;&lt;B id=s:ee1&gt;--2008/10/02--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV id=s:ee2&gt;&lt;B id=s:ee3&gt;--Lecture 6--&lt;/B&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Intermixing text and variables&lt;/B&gt;&lt;BR&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;I&gt;&lt;br /&gt;&lt;P&gt;textread &lt;/P&gt;&lt;/I&gt;&lt;br /&gt;&lt;P&gt;function. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;• &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•SYNTAX: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•A = textread('filename') transforms data in filename into Matrix A. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•ONLY WORKS WITH HOMOGENEOUS Matrices. &lt;/P&gt;&lt;FONT face=Arial&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR&gt;= v ns = "urn:schemas-microsoft-com:vml" /&amp;gt;= o ns = "urn:schemas-microsoft-com:office:office" /&amp;gt;= p ns = "urn:schemas-microsoft-com:office:powerpoint" /&amp;gt; &lt;br /&gt;&lt;DIV class=B&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•SYNTAX: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•[A,B,C] = textread('filename','%s%d%f') &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•reads each column into a variable, of specified type. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;strings are saved in "cell" arrays (&lt;B&gt;multidimensional arrays whose elements are copies of other arrays&lt;/B&gt;, here a table of strings of different sizes). &lt;/P&gt;&lt;I&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;&lt;FONT color=#990000&gt;~Cell Array~&lt;/FONT&gt;&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;names(1) is the cell itself &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•so trash = name(1) makes trash a cell &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•names{1} refers to the value in the cell &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•so trash = name{1} makes trash a character array &lt;/P&gt;&lt;br /&gt;&lt;P&gt;•names{1}(j) is the jth element in the character array stored in the cell 1. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;USE &lt;B&gt;strcmp(string1,string2)&lt;/B&gt;&lt;BR&gt;which is true if string1==string2. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;name2f = input('what student?','s'); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;SPAN style="FONT-SIZE: 88%"&gt;&lt;FONT size=2&gt;&lt;B&gt;&lt;FONT color=#cc0000&gt;numstu = size(name,1);&amp;nbsp; %number of rows&lt;/FONT&gt;&lt;/B&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;for findex=1:numstu &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp;if (&lt;B&gt;strcmp&lt;/B&gt;(name2f,names&lt;FONT color=#cc0000&gt;{findex}))&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp;whichisit =findex; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp;end; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;end; &lt;/P&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;DIV style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: 6.75pt double; MARGIN-TOP: 0px; PADDING-LEFT: 0cm; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 1pt; BORDER-BOTTOM: 6.75pt double"&gt;&lt;br /&gt;&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0px; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=6&gt;Matlab homework6&lt;/FONT&gt;&lt;/B&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P class=MsoNormal style="MARGIN: 0px"&gt;&amp;nbsp; &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;OPTION A. &lt;/B&gt;electricgraphiti.m Write a program that asks a user for his/her name and displays an image graphiti of their name using the gif letter files in: www.psych.uiuc.edu/~alleras/courseImages.htm&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;Save the name as three jpgs of poor, medium and high quality (as due to compression). Hint: beware of capitals.&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;OPTION B. &lt;/B&gt;Write a program that creates the image of a white circle (128 pixel radius) centered on a 400x400 black square. For extra credit (+2), make the brightness of the circle increase smoothly from black in the center to white at its edge. TOUGH GRADING. Hint: one piece of pie, but make sure all the pieces add up to the real thing!&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;OPTION C:&lt;/B&gt; Do both. Second one counts as extra credit. If you do both, plus the extra credit option, you'll get +4 of ec. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;&lt;FONT size=5&gt;eval&lt;/FONT&gt;&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;example 1: &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;br /&gt;&lt;P&gt;for &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;vowel=[&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'a'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'e'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'i'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'o'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'u'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;] &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;string = [ &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'let'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; vowel &lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'.gif'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;] &lt;/FONT&gt;&lt;FONT face="Courier New" color=#228b22 size=2&gt;%concatenate file name string &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" color=#228b22 size=2&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;[letter,map]= imread(eval( &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;' string '&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;)); &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;image(letter); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;colormap(map); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;axis &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;off&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;; &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;axis &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;equal&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;; &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;input( &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'Ready for next? \n'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;); &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;br /&gt;&lt;P&gt;end &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;; &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;example 2: &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;for n=1:10 &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;eval(['M' num2str(n) ' = zeros(n,n)']) &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;end &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&lt;FONT size=4&gt;Avoid loops.&lt;/FONT&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;USE vectors of arrays of indeces to access all elements at once! &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;for example &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;%use find function to find elements of array satisfying a specific condition. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;U=find(X&amp;lt;30)&amp;nbsp;; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;X(U)=cos(t); &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;% use : to travel all elements of an array. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;end:&lt;/B&gt; to reach the last element of a row or column &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;all:&lt;/B&gt; to test at once if all values are true/nonzero in a matrix (or along a dimension) &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;any:&lt;/B&gt; to test if ANY value is true/nonzero in a matrix&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;example: &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;string='A'&amp;nbsp;:'Z' &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;if all(string&amp;lt;'a') % judge whether all are lower letter. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; do-something &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;end &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;repmat:&lt;/B&gt; repeat same matrix a number of times. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;ind2sub&amp;nbsp;&amp;nbsp; sub2ind&lt;/B&gt;: how to obtain indeces from arrays and vice-versa. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;&lt;FONT size=4&gt;############################&lt;/FONT&gt;&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;&lt;FONT size=4&gt;Install Psychtoolbox&lt;/FONT&gt;&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;&lt;FONT size=4&gt;############################&lt;/FONT&gt;&lt;/B&gt;&lt;BR&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;Step 1. download at &lt;A href="http://psychtoolbox.org/PTB-2/download.html"&gt;http://psychtoolbox.org/PTB-2/download.html&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular size=4&gt;&lt;B&gt;Psychtoolbox Win 2.54 (20 February 2004)&lt;/B&gt; requires Matlab 6.5 (Student or regular) or better.&lt;BR&gt;&lt;SPAN class=style3&gt;&lt;IMG height=16 alt="" src="http://psychtoolbox.org/PTB-2/images/HardDisk3D.gif" width=32 align=bottom&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN class=style3&gt;&lt;FONT face=Verdana,Helvetica,Geneva,Swiss,SunSans-Regular size=4&gt;&lt;B&gt;Download&lt;/B&gt; &lt;A href="http://psychtoolbox.org/PTB-2/downloadwintoolbox.html"&gt;&lt;B&gt;zip archive&lt;/B&gt;&lt;/A&gt; (3.1 MB) &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;br /&gt;&lt;P class=style4&gt;&lt;FONT size=4&gt;&lt;SPAN class=style6&gt;&lt;B&gt;&lt;FONT color=#ff0000&gt;IMPORTANT&lt;/FONT&gt;&lt;/B&gt;&lt;/SPAN&gt; UPDATES TO &lt;B&gt;Win&lt;/B&gt;&lt;/FONT&gt; &lt;FONT size=4&gt;2.54:&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;BLOCKQUOTE&gt;&lt;br /&gt;&lt;P class=style4&gt;After you download Win Psychtoolbox 2.54, replace bug-ridden files with improved versions listed below: &lt;/P&gt;&lt;br /&gt;&lt;P class=style4&gt;&lt;I&gt;WaitSecs.dll&lt;/I&gt; - Get it &lt;A href="http://psychtoolbox.org/PTB-2/download/Win254Updates/WaitSecs254update1.zip"&gt;here&lt;/A&gt;. &lt;/P&gt;&lt;br /&gt;&lt;P class=style4&gt;&lt;I&gt;CopyText.dll&lt;/I&gt; - Get it &lt;A href="http://psychtoolbox.org/PTB-2/download/Win254Updates/CopyText254Update1.zip"&gt;here&lt;/A&gt;. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;P class=style4&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;Step 2: add psychtoolbox to the path folder of matlab &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;HR id=s:ee&gt;&lt;br /&gt;&lt;br /&gt;&lt;DIV id=af.l&gt;&lt;br /&gt;&lt;DIV id=s:ee0&gt;&lt;B id=s:ee1&gt;--2008/10/23--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B id=s:ee3&gt;--Lecture 8--&lt;/B&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;1. Structures&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Multidimensional array elements accessed by textual designators. Each field can contain any type of Matlab data (numbers, strings, cells, etc). &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Type: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Data.trial = 1; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Data.setsize = 3; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Data.tgtword = 'doctor'; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Data.rt = 541; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Data.resp =1; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Data &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Using the "struct" function:&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Data = struct('label1', dummy1, 'label2',&lt;/B&gt;&lt;B&gt;dummy2, etc);&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Creates the structure: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;data.label1 = dummy1 &lt;/P&gt;&lt;br /&gt;&lt;P&gt;data.label2 = dummy2 &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;BR&gt;&lt;br /&gt;&lt;P&gt;Data(64) = struct('label1', dummy1, 'label2', dummy2, etc); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Access each element like a vector: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Data(34).label1 = 234; &lt;/P&gt;&amp;nbsp; &lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;data(n) =struct('field1',value1,'field2',value2) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;initializes only the nth value. Others are set to empty matrices.&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;&lt;FONT color=#ea9999&gt;data = repmat(struct('trial',1,'rt',-1),1,64);&lt;/FONT&gt;&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;This way ALL values are initialized with values specified in the struct function. &lt;/P&gt;&lt;BR&gt;&lt;br /&gt;&lt;P&gt;Or: Use values saved in a cell array. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;gt; a = cell(3,1); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;gt; a{1} = 'bob'; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;gt; a{2} = 'where are you?'; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;gt; a{3} = 'I am here'; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;gt; data = struct('line',a); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;What's data(2).line? &lt;/P&gt;&lt;BR&gt;&lt;B&gt;&lt;br /&gt;&lt;P&gt;Planning an experiment &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/B&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;section 1:&lt;B&gt;&lt;FONT face="Courier New"&gt;SETUP VARIABLES&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;-Initialize CONSTANTS (refresh rate) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-Initialize Variables (with comments so you know what each variable does) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-Load big files (images, sounds, mex…) &lt;/P&gt;&lt;BR&gt;&lt;br /&gt;&lt;P&gt;Section 2:BALANCE CONDITIONS &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;BALANCE your design:&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-define conditions &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-how many trials for each condition &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;-Randomize order of trials &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;Section 3: &lt;B&gt;&lt;FONT face="Courier New"&gt;TRIAL LOOP&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;3.1 DRAW constant images&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;(fixation, blank screens) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;3.2 Start Trial Loop &lt;/P&gt;&lt;br /&gt;&lt;P&gt;3.2.1 Draw trial specific stimuli (if any) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;3.2.2 Present stimuli &lt;/P&gt;&lt;br /&gt;&lt;P&gt;3.2.3 Get response &lt;/P&gt;&lt;br /&gt;&lt;P&gt;3.2.4 Classify response (error?) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;3.2.5 ERASE ANY TRIAL SPECIFIC STIMULI&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;&amp;nbsp;&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Section 4:&lt;B&gt;&lt;FONT face="Courier New"&gt;Save DATA&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;Open a subject file and write data to it. (personal preference). &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;save data after each block/trial to avoid data loss or software crash.&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Section 5:&lt;B&gt;&lt;FONT face="Courier New"&gt;CLEAN UP&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;Clear all the variables you used and &lt;/P&gt;&lt;br /&gt;&lt;P&gt;the images you created, and close &lt;/P&gt;&lt;br /&gt;&lt;P&gt;any opened files. &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;AND DON'T FORGET TO COMMENT AS MUCH AS YOU CAN!!!&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;AND DON'T FORGET SECTION 0: Comments at beginning of file for&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;"help".&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT size=2&gt;&lt;B&gt;&lt;FONT size=2&gt;&lt;br /&gt;&lt;P&gt;The Psychophysics Toolbox &lt;/P&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT size=2&gt;&lt;br /&gt;&lt;P&gt;A set of functions to: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-Interact with Monitor (pg. 27-32) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-Interact with Keyboard and mouse &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-Interact with your OS (Here, Windows XP) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;FONT size=2&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;&lt;FONT color=#ff0000&gt;Screen function:&lt;/FONT&gt;&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-Function that helps us interact with our monitor. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;- Many "sub-functions". &lt;/P&gt;&lt;br /&gt;&lt;P&gt;First thing: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;&lt;FONT style="BACKGROUND-COLOR: #ff9900"&gt;OpenWindow:&lt;/FONT&gt;&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;[windowPtr,rect]=Screen(0,'OpenWindow',[color],[rectangle],[pixelSize]); &lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;FONT size=2&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;windowptr:&lt;/B&gt; a pointer to the space in memory we are allocating to work on this window (kinda like fid=fopen(..) keeps track of a file), can be called "fixation display",'practice' etc. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;rect:&lt;/B&gt; (if specified, and I suggest you do) gives you the coordinates of the window you’ll be using in pixels, on the format [Xtop-left, Ytop-left, Xbotton-right, Ybottom-right]. e.g. [0 0 1280 1024] &lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;B&gt;0:&lt;/B&gt; refers to the main monitor (where you'll be presenting stimuli).&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;B&gt;color:&lt;/B&gt; you want the window to be: if one number: an index (CLUT, between 0-255), or a RGB triplet [r g b]. Later we'll talk about&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;changing the CLUT.&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;B&gt;rectangle:&lt;/B&gt; ignored in windows&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;B&gt;pixelsize:&lt;/B&gt; you can set the pixelsize for your screens (8 bit -&amp;gt; 256 colors, 24 bit…). Default is unchanged.&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&lt;FONT size=2&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT style="BACKGROUND-COLOR: #ff0000"&gt;Close Window&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Two ways: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;To close all windows: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Screen('CloseAll'); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;To close a specific window: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Screen(windowPtr,'Close'); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;VERY IMPORTANT!!! &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT style="BACKGROUND-COLOR: #00ff00"&gt;"Hello World " to psychtoolbox&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;warning &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;off&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;MATLAB:DeprecatedLogicalAPI&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;[windowPtr,rect]=Screen(0, &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'OpenWindow'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;,255); % CLUT 255 for white background, 0 for black&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;Screen(windowPtr, &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'DrawText'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;,&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'Hello World'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;,500,350,100);&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;KbWait; %wait for the user to push a key&lt;FONT face="Courier New" size=7&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=7&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;Screen( &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'CloseAll'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;);&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;FONT size=2&gt;&lt;br /&gt;&lt;P&gt;DETERMINE HOW LONG IT TOOK MATLAB &lt;/P&gt;&lt;br /&gt;&lt;P&gt;TO OPEN THE WINDOW AND WRITE TEXT &lt;/P&gt;&lt;br /&gt;&lt;P&gt;TO IT. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Use: &lt;B&gt;GetSecs &lt;/B&gt;(returns seconds since computer was turned on); &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT style="BACKGROUND-COLOR: #00ff00"&gt;OffScreenWindows&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;So, we can work "offline", prepare our screens and then quickly copy&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;them to the screen. &lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;image = Screen(windowPtr,'OpenoffScreenWindow',color,smallerrect)&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;B&gt;image &lt;/B&gt;is pointer to refer to this offscreen window&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;B&gt;windowPtr&lt;/B&gt; is pointer to the monitor window (to which all windows are related)&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;B&gt;smallerrect &lt;/B&gt;is size of offscreen window (can be smaller!)&lt;/FONT&gt; &lt;/P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;br /&gt;&lt;P&gt;So, Once we have our offscreen window, we THEN copy it to our main window. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Screen(&lt;FONT style="BACKGROUND-COLOR: #00ff00"&gt;'CopyWindow'&lt;/FONT&gt;, srcWinPtr,DestWindoPtr, [srcRect],[dstRect]); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;srcWinPtr: is the windowPointer (name) of the window you want to copy (source) &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;Bugs: The color template in open window subcommand is BGR instead of RGB. The following command will create blue background.&lt;/FONT&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;[window,rect]=Screen(0,&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'OpenWindow'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;,[255 0 0]);&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;image = Screen(window, &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'OpenoffScreenWindow'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;,[255 0 0],[0 0 100 100]);&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;br /&gt;&lt;P&gt;HideCursor; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;beep=MakeBeep(100,5); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Snd('Open'); &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;Snd('Play',beep); % play beep sound. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;PutImage&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Screen(windowPtr,'PutImage', imagearray,[rect],[copymode]); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;imagearray is a matrix like the ones we created a few weeks ago:MxN or MxNx3 (if 16 or 32 bits graphic card) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Help on Screen functions?&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Type: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Screen(‘NameOfFunction?’) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Try: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Screen(‘PutImage?’) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Beeps and Wav sounds&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Matlab can play wav sounds and beeps WHILE doing something else &lt;/P&gt;&lt;br /&gt;&lt;P&gt;(nice for experiments). &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Just like we 'Open' a window, we need to 'Open' a sound channel: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Snd('Open'); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;and 'close' it when you are done: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Snd('Close'); &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Beeps&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;You can create beeps with MakeBeep, which creates a vector that will be interpreted by your sound card (just like a matrix of numbers is interpreted by your graphics card as an image). &lt;/P&gt;&lt;br /&gt;&lt;P&gt;beep = MakeBeep(frequency,duration,samplingrate); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Then you can play that beep: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Snd('Play',beep,samplingrate); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Wav files&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Windows Audio files: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-&amp;gt; wavplay(y,FS) plays sound recorded in y vector at the sampling frequency specified in FS (same sound will be different if played faster (larger FS) or slower (smaller FS). For stereo playback, Y would be N-by-2 matrix (left, right channels). &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-&amp;gt;important: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;wavplay(y,FS,'async') allows you to play that sound while continuing to do stuff in Matlab (non-blocking call). &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;BR&gt;&lt;br /&gt;&lt;DIV&gt;wavrecord(N,FS,CH) &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Synchronizing windows and monitor&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;To do so, we use the 'WaitBlanking' command in Screen. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Calling: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Screen(windowptr,'WaitBlanking') &lt;/P&gt;&lt;br /&gt;&lt;P&gt;will wait until your gun moves to the top of the monitor. (only true for CRT monitors and analog LCDs) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;B&gt;&lt;br /&gt;&lt;P&gt;counting time with refresh rates: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-&amp;gt;IF you want to present a stimulus for a specific amount of time, count time in refreshes. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;TIME &lt;/P&gt;&lt;B&gt;&lt;br /&gt;&lt;P&gt;counting time with GetSecs: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Cool and accurate. You can do something like: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;t1=GetSecs; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;t2=t1; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Screen('CopyWindow'…); %or whatever… &lt;/P&gt;&lt;br /&gt;&lt;P&gt;while ((t2-t1)&amp;lt; presentationTime) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;t2=GetSecs; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;end; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;%This syntax is equivalent to WaitSecs. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;tic (start counting time) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;toc (count the time. ) &lt;/P&gt;&lt;/B&gt;&lt;/B&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;###Get the refresh rate of monitor####### &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;%He, Jibo @UIUC, 10/30/2008 &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;warning &lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;off&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;MATLAB:DeprecatedLogicalAPI&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;[windowptr,rectangle]=screen(0,&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'OpenWindow'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;,255);&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;Screen(windowptr,&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'WaitBlanking'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;t1=GetSecs; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;t2=t1; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;counter=0; &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;while &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;((t2-t1)&amp;lt; 1)&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;Screen(windowptr,&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'WaitBlanking'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;&lt;br /&gt;&lt;P&gt;counter=counter+1; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;t2=GetSecs; &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;counter&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;Screen(&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'CloseAll'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;);&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp;############################## &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;FONT size=2&gt;&lt;br /&gt;&lt;DIV&gt;frames=FrameRate(window); %Matlab's inquiry function &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;###wait 100ms####### &lt;/DIV&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;frames=FrameRate(window)&lt;/FONT&gt;&lt;FONT face="Courier New" color=#228b22 size=2&gt;%present stimuli 100ms. to be accurate, the multiply of the refreshrate&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" color=#228b22 size=2&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;FONT face="Courier New" color=#228b22 size=2&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Screen(window,&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a020f0 size=2&gt;'WaitBlanking'&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;,floor(frames./10)) &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp;############################## &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;Keyboard Management&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;List of useful functions: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;KbCheck: status of keyboard &lt;/P&gt;&lt;br /&gt;&lt;P&gt;KbWait: waits for Keypress (returns GetSecs) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;GetChar: waits for character &lt;/P&gt;&lt;br /&gt;&lt;P&gt;CharAvail: checks event queue for characters &lt;/P&gt;&lt;br /&gt;&lt;P&gt;FlushEvents: help manage event queue &lt;/P&gt;&lt;br /&gt;&lt;P&gt;EventAvail: checks for events &lt;/P&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;br /&gt;&lt;P&gt;KbCheck &lt;/P&gt;&lt;br /&gt;&lt;P&gt;IS USEFUL TO CLEAN THE KEYBOARD &lt;/P&gt;&lt;br /&gt;&lt;P&gt;BUFFER!! &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;&lt;FONT color=#ff0000&gt;while KbCheck end;&lt;/FONT&gt;&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;will "clean" your buffer &lt;/P&gt;&lt;br /&gt;&lt;P&gt;(Technically, wait until it is clean) &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;[keyisDown,secs,keyCode]=KbCheck; &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT style="BACKGROUND-COLOR: #ff9900"&gt;find(keyCode)&lt;/FONT&gt; which key in ASCII &lt;/P&gt;&lt;br /&gt;&lt;P&gt;or you can ask directly if a given key was hit: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;if keyCode('Z') (would be 1 if the z key was hit) &lt;/P&gt;&lt;br /&gt;&lt;P&gt;%note capitalization. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT style="BACKGROUND-COLOR: #ff0000"&gt;KbName:&lt;/FONT&gt; toolbox function that allows us to name the different keys on the keyboard (primary label) (Note: '5' vs. '5%') &lt;/P&gt;&lt;br /&gt;&lt;P&gt;Usage: KbName(arg) if arg is a string ('z'): returns the keyCode for that key if arg is the array keyCode, KbName returns the label of the key. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;KbName deals with KEYS not Characters! &lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;leftTarget = KbName('left'); &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;FONT style="BACKGROUND-COLOR: #ff0000"&gt;MOUSE Management&lt;/FONT&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;List of useful functions: &lt;/P&gt;&lt;br /&gt;&lt;P&gt;HideCursor &lt;/P&gt;&lt;br /&gt;&lt;P&gt;ShowCursor &lt;/P&gt;&lt;br /&gt;&lt;P&gt;GetClicks &lt;/P&gt;&lt;br /&gt;&lt;P&gt;GetMouse &lt;/P&gt;&lt;br /&gt;&lt;P&gt;SetMouse &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;[x,y,buttons]=GetMouse(windowPtr); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;SetMouse(100,500) # move the mouse to (100,500) &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&amp;nbsp; &lt;/DIV&gt;&lt;B&gt;&lt;I&gt;&lt;FONT face=Arial-BoldItalicMT size=4&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;br /&gt;&lt;P align=left&gt;&lt;B&gt;&lt;I&gt;&lt;FONT face=Arial-BoldItalicMT size=4&gt;PsychDemos&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt; &lt;/P&gt;&lt;B&gt;&lt;I&gt;&lt;FONT face=Arial-BoldItalicMT size=4&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;I&gt;&lt;FONT face=Arial-BoldItalicMT size=4&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;FONT face=Arial-BoldItalicMT size=4&gt;&lt;/FONT&gt;&lt;FONT face=TimesNewRomanPSMT&gt;&lt;br /&gt;&lt;P align=left&gt;If you are wondering what kind of thing you can do with PTB and how some of your &lt;/P&gt;&lt;br /&gt;&lt;P align=left&gt;ideas can be coded up, look at the demos that ship with PTB. Try typing: &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face=CourierNewPSMT size=3&gt;&lt;br /&gt;&lt;P align=left&gt;&amp;gt;&amp;gt;help PsychDemos &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face=TimesNewRomanPSMT size=1&gt;&lt;br /&gt;&lt;P align=left&gt;This will give you a list of available demos and a short description of what they do. If you are curious what a certain &lt;/P&gt;&lt;br /&gt;&lt;P align=left&gt;demo does you can inquire further. For example, type: &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face=CourierNewPSMT size=3&gt;&lt;br /&gt;&lt;P align=left&gt;&amp;gt;&amp;gt;help MandelbrotDemo &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face=TimesNewRomanPSMT size=1&gt;&lt;br /&gt;&lt;P align=left&gt;This will tell you what this script does. If you are curious how this is implemented, type: &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face=CourierNewPSMT size=3&gt;&lt;br /&gt;&lt;P align=left&gt;&amp;gt;&amp;gt;edit MandelbrotDemo &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face=TimesNewRomanPSMT size=1&gt;&lt;br /&gt;&lt;P align=left&gt;This will open the file MandelbrotDemo.m in an editor window. Don’t edit this file! You might cause some damage. &lt;/P&gt;&lt;br /&gt;&lt;P align=left&gt;Instead, save the file under a new name. For example, ‘myMandelbrotDemo.m’. Now you can twiddle things in the file &lt;/P&gt;&lt;br /&gt;&lt;P align=left&gt;and try to see what effect these changes have on the execution of the program. But before you start doing that, let’s get &lt;/P&gt;&lt;br /&gt;&lt;P align=left&gt;acquainted with the single most important function in Psychtoolbox. &lt;/P&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;B&gt;----------------------GUI in matlab--------------------&lt;/B&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;quesdlg&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;ButtonName=questdlg(Question,Title,Btn1,Btn2, &lt;/P&gt;&lt;br /&gt;&lt;P&gt;DEFAULT); &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-up to three buttons. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;-Default is optional. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;ButtonName=questdlg('What is your wish?', ... &lt;/P&gt;&lt;br /&gt;&lt;P&gt;'Genie Question', ... &lt;/P&gt;&lt;br /&gt;&lt;P&gt;'Food','Clothing','Money','Money'); &lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;B&gt;INPUTDLG&lt;/B&gt; &lt;/P&gt;&lt;br /&gt;&lt;P&gt;ANSWER = INPUTDLG(PROMPT) creates an input dialog box where &lt;/P&gt;&lt;br /&gt;&lt;P&gt;users can enter text, saved in the cell array ANSWER. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;PROMPT is a cell array containing the PROMPT strings. &lt;/P&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-819809432212073653?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/819809432212073653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=819809432212073653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/819809432212073653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/819809432212073653'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/10/matlab-programming-notes.html' title='####Matlab Programming Notes####'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-301956445698622159</id><published>2008-09-27T16:20:00.000-07:00</published><updated>2008-11-11T20:15:42.972-08:00</updated><title type='text'></title><content type='html'>&lt;h1&gt;&lt;center&gt;A Brief History of&lt;br&gt;&lt;br /&gt;Human Computer Interaction Technology&lt;/center&gt;&lt;br /&gt;&lt;/h1&gt;&lt;center&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.cs.cmu.edu/%7Ebam"&gt;Brad A. Myers&lt;/a&gt;&lt;/b&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;Carnegie Mellon University School of Computer Science Technical&lt;br /&gt;Report CMU-CS-96-163&lt;br&gt;and&lt;br&gt;&lt;br /&gt;Human Computer Interaction Institute&lt;br /&gt;Technical Report CMU-HCII-96-103&lt;br /&gt;&lt;p&gt;&lt;br /&gt;December, 1996&lt;/p&gt;&lt;/center&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;font size="+1"&gt;&lt;font size="+1"&gt;&lt;b&gt;Please cite this work as:&lt;br&gt;&lt;br /&gt;Brad A. Myers.  "A Brief History of Human Computer Interaction&lt;br /&gt;Technology." &lt;br /&gt;&lt;i&gt;ACM interactions&lt;/i&gt;.  Vol. 5, no. 2, March, 1998.  pp. 44-54.&lt;br /&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;center&gt;&lt;br /&gt;&lt;a href="http://www.cs.cmu.edu/%7Ehcii"&gt;Human Computer Interaction Institute&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;School of Computer Science&lt;br&gt;&lt;br /&gt;Carnegie Mellon University&lt;br&gt;&lt;br /&gt;Pittsburgh, PA  15213-3891&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a href="mailto:bam+@cs.cmu.edu"&gt;bam@a.gp.cs.cmu.edu&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Abstract&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;This article summarizes the historical development of major advances in&lt;br /&gt;human-computer interaction technology, emphasizing the pivotal role of&lt;br /&gt;university research in the advancement of the field.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;center&gt;&lt;br /&gt;Copyright (c) 1996 -- Carnegie Mellon University&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;A short excerpt from this article appeared as part of "Strategic Directions&lt;br /&gt;in&lt;br /&gt;Human Computer Interaction," edited by Brad Myers, Jim Hollan, Isabel Cruz,&lt;br /&gt;&lt;i&gt;ACM Computing Surveys&lt;/i&gt;, &lt;b&gt;28&lt;/b&gt;(4), December 1996&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;This research was partially sponsored by NCCOSC under Contract No.&lt;br /&gt;N66001-94-C-6037, Arpa Order No. B326 and partially by NSF under grant number&lt;br /&gt;IRI-9319969.  The views and conclusions contained in this document are those&lt;br /&gt;of&lt;br /&gt;the authors and should not be interpreted as representing the official&lt;br /&gt;policies, either expressed or implied, of NCCOSC or the U.S. Government.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Keywords:&lt;/b&gt; Human Computer Interaction, History, User Interfaces,&lt;br /&gt;Interaction Techniques.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;hr&gt;&lt;br /&gt;&lt;h1&gt;&lt;a name="RTFToC1"&gt;1.&lt;br /&gt;Introduction&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/h1&gt;&lt;p&gt;Research in Human-Computer Interaction (HCI) has been spectacularly&lt;br /&gt;successful,&lt;br /&gt;and has fundamentally changed computing.  Just one example is the ubiquitous&lt;br /&gt;graphical interface used by Microsoft Windows 95, which is based on the&lt;br /&gt;Macintosh, which is based on work at Xerox PARC, which in turn is based on&lt;br /&gt;early research at the Stanford Research Laboratory (now SRI) and at the&lt;br /&gt;Massachusetts Institute of Technology.  Another example is that virtually&lt;br /&gt;all&lt;br /&gt;software written today employs user interface toolkits and interface builders,&lt;br /&gt;concepts which were developed first at universities.  Even the spectacular&lt;br /&gt;growth of the World-Wide Web is a direct result of HCI research: applying&lt;br /&gt;hypertext technology to browsers allows one to traverse a link across the&lt;br /&gt;world&lt;br /&gt;with a click of the mouse.  Interface improvements more than anything else&lt;br /&gt;has&lt;br /&gt;triggered this explosive growth.  Furthermore, the research that will lead&lt;br /&gt;to&lt;br /&gt;the user interfaces for the computers of tomorrow is happening at universities&lt;br /&gt;and a few corporate research labs.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;This paper tries to briefly summarize many of the important research&lt;br /&gt;developments in Human-Computer Interaction (HCI) technology.  By "research,"&lt;br /&gt;I&lt;br /&gt;mean exploratory work at universities and government and corporate research&lt;br /&gt;labs (such as Xerox PARC) that is not directly related to products.  By "HCI&lt;br /&gt;technology," I am referring to the computer side of HCI.  A companion article&lt;br /&gt;on the history of the "human side," discussing the contributions from&lt;br /&gt;psychology, design, human factors and ergonomics would also be appropriate.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;A motivation for this article is to overcome the mistaken impression that&lt;br /&gt;much&lt;br /&gt;of the important work in Human-Computer Interaction occurred in industry,&lt;br /&gt;and&lt;br /&gt;if university research in Human-Computer Interaction is not supported, then&lt;br /&gt;industry will just carry on anyway.  This is simply not true.  This paper&lt;br /&gt;tries&lt;br /&gt;to show that many of the most famous HCI successes developed by companies&lt;br /&gt;are&lt;br /&gt;deeply rooted in university research.  In fact, virtually all of today's&lt;br /&gt;major&lt;br /&gt;interface styles and applications have had significant influence from research&lt;br /&gt;at universities and labs, often with government funding.  To illustrate this,&lt;br /&gt;this paper lists the funding sources of some of the major advances.  Without&lt;br /&gt;this research, many of the advances in the field of HCI would probably not&lt;br /&gt;have&lt;br /&gt;taken place, and as a consequence, the user interfaces of commercial products&lt;br /&gt;would be far more difficult to use and learn than they are today.  As described&lt;br /&gt;by Stu Card:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;"Government funding of advanced human-computer interaction technologies built&lt;br /&gt;the intellectual capital and trained the research teams for pioneer systems&lt;br /&gt;that, over a period of 25 years, revolutionized how people interact with&lt;br /&gt;computers.  Industrial research laboratories at the corporate level in Xerox,&lt;br /&gt;IBM, AT&amp;amp;T, and others played a strong role in developing this technology&lt;br /&gt;and bringing it into a form suitable for the commercial arena."  [6, p.&lt;br /&gt;162]).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Figure 1 shows time lines for some of the technologies discussed in this&lt;br /&gt;article.  Of course, a deeper analysis would reveal much interaction between&lt;br /&gt;the university, corporate research and commercial activity streams.  It is&lt;br /&gt;important to appreciate that years of research are involved in creating and&lt;br /&gt;making these technologies ready for widespread use.  The same will be true&lt;br /&gt;for&lt;br /&gt;the HCI technologies that will provide the interfaces of tomorrow.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;It is clearly impossible to list every system and source in a paper of this&lt;br /&gt;scope, but I have tried to represent the earliest and most influential systems.&lt;br /&gt;Although there are a number of other surveys of HCI topics (see, for example&lt;br /&gt;[1] [10] [33] [38]), none cover as many aspects as this one, or try to be&lt;br /&gt;as&lt;br /&gt;comprehensive in finding the original influences.  Another useful resource&lt;br /&gt;is&lt;br /&gt;the video "All The Widgets," which shows the historical progression of a&lt;br /&gt;number&lt;br /&gt;of user interface ideas [25].&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The technologies covered in this paper include fundamental interaction styles&lt;br /&gt;like direct manipulation, the mouse pointing device, and windows; several&lt;br /&gt;important kinds of application areas, such as drawing, text editing and&lt;br /&gt;spreadsheets; the technologies that will likely have the biggest impact on&lt;br /&gt;interfaces of the future, such as gesture recognition, multimedia, and 3D;&lt;br /&gt;and&lt;br /&gt;the technologies used to &lt;i&gt;create&lt;/i&gt; interfaces using the other technologies,&lt;br /&gt;such as user interface management systems, toolkits, and interface builders.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;hr&gt;&lt;br /&gt;&lt;img src="http://www.cs.cmu.edu/%7Eamulet/papers/uihistoryfig1.gif"&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Figure 1&lt;/b&gt;: Approximate time lines showing where work was performed&lt;br /&gt;on&lt;br /&gt;some major technologies discussed in this article.&lt;br /&gt;&lt;/p&gt;&lt;hr&gt;&lt;br /&gt;&lt;h1&gt;&lt;a name="RTFToC2"&gt;2.&lt;br /&gt;Basic Interactions&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Direct Manipulation of graphical objects&lt;/b&gt;: The now ubiquitous&lt;br /&gt;direct&lt;br /&gt;manipulation interface, where visible objects on the screen are directly&lt;br /&gt;manipulated with a pointing device, was first demonstrated by Ivan Sutherland&lt;br /&gt;in Sketchpad [44], which was his 1963 MIT PhD thesis.  SketchPad supported&lt;br /&gt;the&lt;br /&gt;manipulation of objects using a light-pen, including grabbing objects, moving&lt;br /&gt;them, changing size, and using constraints.  It contained the seeds of myriad&lt;br /&gt;important interface ideas.  The system was built at Lincoln Labs with support&lt;br /&gt;from the Air Force and NSF.  William Newman's Reaction Handler [30], created&lt;br /&gt;at&lt;br /&gt;Imperial College, London (1966-67) provided direct manipulation of graphics,&lt;br /&gt;and introduced "Light Handles," a form of graphical potentiometer, that was&lt;br /&gt;probably the first "widget."  Another early system was AMBIT/G (implemented&lt;br /&gt;at&lt;br /&gt;MIT's Lincoln Labs, 1968, ARPA funded).  It employed, among other interface&lt;br /&gt;techniques, iconic representations, gesture recognition, dynamic menus with&lt;br /&gt;items selected using a pointing device, selection of icons by pointing, and&lt;br /&gt;moded and mode-free styles of interaction.  David Canfield Smith coined the&lt;br /&gt;term "icons" in his 1975 Stanford PhD thesis on Pygmalion [41] (funded by&lt;br /&gt;ARPA&lt;br /&gt;and NIMH) and Smith later popularized icons as one of the chief designers&lt;br /&gt;of&lt;br /&gt;the Xerox Star [42].  Many of the interaction techniques popular in direct&lt;br /&gt;manipulation interfaces, such as how objects and text are selected, opened,&lt;br /&gt;and&lt;br /&gt;manipulated, were researched at Xerox PARC in the 1970's.  In particular,&lt;br /&gt;the&lt;br /&gt;idea of "WYSIWYG" (what you see is what you get) originated there with systems&lt;br /&gt;such as the Bravo text editor and the Draw drawing program [10]  The concept&lt;br /&gt;of&lt;br /&gt;direct manipulation interfaces for everyone was envisioned by Alan Kay of&lt;br /&gt;Xerox&lt;br /&gt;PARC in a 1977 article about the "Dynabook" [16].  The first commercial systems&lt;br /&gt;to make extensive use of Direct Manipulation were the Xerox Star (1981) [42],&lt;br /&gt;the Apple Lisa (1982) [51] and Macintosh (1984) [52].  Ben Shneiderman at&lt;br /&gt;the&lt;br /&gt;University of Maryland coined the term "Direct Manipulation" in 1982 and&lt;br /&gt;identified the components and gave psychological foundations  [40].&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;The Mouse&lt;/b&gt;: The mouse was developed at Stanford Research Laboratory&lt;br /&gt;(now SRI) in 1965 as part of the NLS project (funding from ARPA, NASA, and&lt;br /&gt;Rome&lt;br /&gt;ADC) [9] to be a cheap replacement for light-pens, which had been used at&lt;br /&gt;least&lt;br /&gt;since 1954 [10, p. 68].  Many of the current uses of the mouse were&lt;br /&gt;demonstrated by Doug Engelbart as part of NLS in a movie created in 1968&lt;br /&gt;[8].&lt;br /&gt;The mouse was then made famous as a practical input device by Xerox PARC&lt;br /&gt;in the&lt;br /&gt;1970's.  It first appeared commercially as part of the Xerox Star (1981),&lt;br /&gt;the&lt;br /&gt;Three Rivers Computer Company's PERQ (1981) [23], the Apple Lisa (1982),&lt;br /&gt;and&lt;br /&gt;Apple Macintosh (1984).&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Windows&lt;/b&gt;: Multiple tiled windows were demonstrated in Engelbart's&lt;br /&gt;NLS&lt;br /&gt;in 1968 [8].  Early research at Stanford on systems like COPILOT (1974) [46]&lt;br /&gt;and at MIT with the EMACS text editor (1974) [43] also demonstrated tiled&lt;br /&gt;windows.  Alan Kay proposed the idea of overlapping windows in his 1969&lt;br /&gt;University of Utah PhD thesis [15] and they first appeared in 1974 in his&lt;br /&gt;Smalltalk system [11] at Xerox PARC, and soon after in the InterLisp system&lt;br /&gt;[47].  Some of the first commercial uses of windows were on Lisp Machines&lt;br /&gt;Inc.&lt;br /&gt;(LMI) and Symbolics Lisp Machines (1979), which grew out of MIT AI Lab&lt;br /&gt;projects.  The Cedar Window Manager from Xerox PARC was the first major tiled&lt;br /&gt;window manager (1981) [45], followed soon by the Andrew window manager [32]&lt;br /&gt;by&lt;br /&gt;Carnegie Mellon University's Information Technology Center (1983, funded&lt;br /&gt;by&lt;br /&gt;IBM).  The main commercial systems popularizing windows were the Xerox Star&lt;br /&gt;(1981), the Apple Lisa (1982), and most importantly the Apple Macintosh (1984).&lt;br /&gt;The early versions of the Star and Microsoft Windows were tiled, but eventually&lt;br /&gt;they supported overlapping windows like the Lisa and Macintosh.  The X Window&lt;br /&gt;System, a current international standard, was developed at MIT in 1984 [39].&lt;br /&gt;For a survey of window managers, see [24].&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;a name="RTFToC3"&gt;3.&lt;br /&gt;Application Types&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Drawing programs&lt;/b&gt;: Much of the current technology was&lt;br /&gt;demonstrated in&lt;br /&gt;Sutherland's 1963 Sketchpad system.  The use of a mouse for graphics was&lt;br /&gt;demonstrated in NLS (1965).  In 1968 Ken Pulfer and Grant Bechthold at the&lt;br /&gt;National Research Council of Canada built a mouse out of wood patterned after&lt;br /&gt;Engelbart's and used it with a key-frame animation system to draw all the&lt;br /&gt;frames of a movie.  A subsequent movie, "Hunger" in 1971 won a number of&lt;br /&gt;awards, and was drawn using a tablet instead of the mouse (funding by the&lt;br /&gt;National Film Board of Canada) [3].  William Newman's Markup (1975) was the&lt;br /&gt;first drawing program for Xerox PARC's Alto, followed shortly by Patrick&lt;br /&gt;Baudelaire's Draw which added handling of lines and curves [10, p. 326].&lt;br /&gt; The&lt;br /&gt;first computer painting program was probably Dick Shoup's "Superpaint" at&lt;br /&gt;PARC&lt;br /&gt;(1974-75).&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Text Editing&lt;/b&gt;: In 1962 at the Stanford Research Lab, Engelbart&lt;br /&gt;proposed, and later implemented, a word processor with automatic word wrap,&lt;br /&gt;search and replace, user-definable macros, scrolling text, and commands to&lt;br /&gt;move, copy, and delete characters, words, or blocks of text.  Stanford's&lt;br /&gt;TVEdit&lt;br /&gt;(1965) was one of the first CRT-based display editors that was widely used&lt;br /&gt;[48].  The Hypertext Editing System [50, p. 108] from Brown University had&lt;br /&gt;screen editing and formatting of arbitrary-sized strings with a lightpen&lt;br /&gt;in&lt;br /&gt;1967 (funding from IBM).  NLS demonstrated mouse-based editing in 1968. &lt;br /&gt;TECO&lt;br /&gt;from MIT was an early screen-editor (1967) and EMACS [43] developed from&lt;br /&gt;it in&lt;br /&gt;1974.  Xerox PARC's Bravo [10, p. 284] was the first WYSIWYG editor-formatter&lt;br /&gt;(1974).  It was designed by Butler Lampson and Charles Simonyi who had started&lt;br /&gt;working on these concepts around 1970 while at Berkeley.  The first commercial&lt;br /&gt;WYSIWYG editors were the Star, LisaWrite and then MacWrite.  For a survey&lt;br /&gt;of&lt;br /&gt;text editors, see [22] [50, p. 108].&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Spreadsheets&lt;/b&gt;: The initial spreadsheet was VisiCalc which was developed&lt;br /&gt;by Frankston and Bricklin (1977-8) for the Apple II while they were students&lt;br /&gt;at&lt;br /&gt;MIT and the Harvard Business School.  The solver was based on a&lt;br /&gt;dependency-directed backtracking algorithm by Sussman and Stallman at the&lt;br /&gt;MIT&lt;br /&gt;AI Lab.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;HyperText&lt;/b&gt;: The idea for hypertext (where documents are linked&lt;br /&gt;to&lt;br /&gt;related documents) is credited to Vannevar Bush's famous MEMEX idea from&lt;br /&gt;1945&lt;br /&gt;[4].  Ted Nelson coined the term "hypertext" in 1965 [29].  Engelbart's NLS&lt;br /&gt;system [8] at the Stanford Research Laboratories in 1965 made extensive use&lt;br /&gt;of&lt;br /&gt;linking (funding from ARPA, NASA, and Rome ADC).  The "NLS Journal" [10,&lt;br /&gt;p.&lt;br /&gt;212] was one of the first on-line journals, and it included full linking&lt;br /&gt;of&lt;br /&gt;articles (1970).  The Hypertext Editing System, jointly designed by Andy&lt;br /&gt;van&lt;br /&gt;Dam, Ted Nelson, and two students at Brown University (funding from IBM)&lt;br /&gt;was&lt;br /&gt;distributed extensively [49].  The University of Vermont's PROMIS (1976)&lt;br /&gt;was&lt;br /&gt;the first Hypertext system released to the user community.  It was used to&lt;br /&gt;link&lt;br /&gt;patient and patient care information at the University of Vermont's medical&lt;br /&gt;center.  The ZOG project (1977) from CMU was another early hypertext system,&lt;br /&gt;and was funded by ONR and DARPA [36].  Ben Shneiderman's Hyperties was the&lt;br /&gt;first system where highlighted items in the text could be clicked on to go&lt;br /&gt;to&lt;br /&gt;other pages (1983, Univ. of Maryland) [17].  HyperCard from Apple (1988)&lt;br /&gt;significantly helped to bring the idea to a wide audience.  There have been&lt;br /&gt;many other hypertext systems through the years.  Tim Berners-Lee used the&lt;br /&gt;hypertext idea to create the World Wide Web in 1990 at the government-funded&lt;br /&gt;European Particle Physics Laboratory (CERN).  Mosaic, the first popular&lt;br /&gt;hypertext browser for the World-Wide Web was developed at the Univ. of&lt;br /&gt;Illinois' National Center for Supercomputer Applications (NCSA).  For a more&lt;br /&gt;complete history of HyperText, see [31].&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Computer Aided Design (CAD)&lt;/b&gt;:  The same 1963 IFIPS conference at&lt;br /&gt;which&lt;br /&gt;Sketchpad was presented also contained a number of CAD systems, including&lt;br /&gt;Doug&lt;br /&gt;Ross's Computer-Aided Design Project at MIT in the Electronic Systems Lab&lt;br /&gt;[37]&lt;br /&gt;and Coons' work at MIT with SketchPad [7].  Timothy Johnson's pioneering&lt;br /&gt;work&lt;br /&gt;on the interactive 3D CAD system Sketchpad 3 [13] was his 1963 MIT MS thesis&lt;br /&gt;(funded by the Air Force).  The first CAD/CAM system in industry was probably&lt;br /&gt;General Motor's DAC-1 (about 1963).&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Video Games&lt;/b&gt;:  The first graphical video game was probably SpaceWar&lt;br /&gt;by&lt;br /&gt;Slug Russel of MIT in 1962 for the PDP-1 [19, p. 49] including the first&lt;br /&gt;computer joysticks.  The early computer Adventure game was created by Will&lt;br /&gt;Crowther at BBN, and Don Woods developed this into a more sophisticated&lt;br /&gt;Adventure game at Stanford in 1966 [19, p. 132].  Conway's game of LIFE was&lt;br /&gt;implemented on computers at MIT and Stanford in 1970.  The first popular&lt;br /&gt;commercial game was Pong (about 1976).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;a name="RTFToC4"&gt;4.&lt;br /&gt;Up-and-Coming Areas&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Gesture Recognition&lt;/b&gt;: The first pen-based input device,&lt;br /&gt;the RAND&lt;br /&gt;tablet, was funded by ARPA.  Sketchpad used light-pen gestures (1963).&lt;br /&gt;Teitelman in 1964 developed the first trainable gesture recognizer.  A very&lt;br /&gt;early demonstration of gesture recognition was Tom Ellis' GRAIL system on&lt;br /&gt;the&lt;br /&gt;RAND tablet (1964, ARPA funded).  It was quite common in light-pen-based&lt;br /&gt;systems to include some gesture recognition, for example in the AMBIT/G system&lt;br /&gt;(1968 -- ARPA funded).  A gesture-based text editor using proof-reading symbols&lt;br /&gt;was developed at CMU by Michael Coleman in 1969.  Bill Buxton at the University&lt;br /&gt;of Toronto has been studying gesture-based interactions since 1980.  Gesture&lt;br /&gt;recognition has been used in commercial CAD systems since the 1970s, and&lt;br /&gt;came&lt;br /&gt;to universal notice with the Apple Newton in 1992.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Multi-Media&lt;/b&gt;: The FRESS project at Brown used multiple windows&lt;br /&gt;and&lt;br /&gt;integrated text and graphics (1968, funding from industry).  The Interactive&lt;br /&gt;Graphical Documents project at Brown was the first hypermedia (as opposed&lt;br /&gt;to&lt;br /&gt;hypertext) system, and used raster graphics and text, but not video (1979-1983,&lt;br /&gt;funded by ONR and NSF).  The Diamond project at BBN (starting in 1982, DARPA&lt;br /&gt;funded) explored combining multimedia information (text, spreadsheets,&lt;br /&gt;graphics, speech).  The Movie Manual at the Architecture Machine Group (MIT)&lt;br /&gt;was one of the first to demonstrate mixed video and computer graphics in&lt;br /&gt;1983&lt;br /&gt;(DARPA funded).&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;3-D:&lt;/b&gt; The first 3-D system was probably Timothy Johnson's 3-D CAD&lt;br /&gt;system mentioned above (1963, funded by the Air Force).  The "Lincoln Wand"&lt;br /&gt;by&lt;br /&gt;Larry Roberts was an ultrasonic 3D location sensing system, developed at&lt;br /&gt;Lincoln Labs (1966, ARPA funded).  That system also had the first interactive&lt;br /&gt;3-D hidden line elimination.  An early use was for molecular modelling [18].&lt;br /&gt;The late 60's and early 70's saw the flowering of 3D raster graphics research&lt;br /&gt;at the University of Utah with Dave Evans, Ivan Sutherland, Romney, Gouraud,&lt;br /&gt;Phong, and Watkins, much of it government funded.  Also, the&lt;br /&gt;military-industrial flight simulation work of the 60's - 70's led the way&lt;br /&gt;to&lt;br /&gt;making 3-D real-time with commercial systems from GE, Evans&amp;amp;Sutherland,&lt;br /&gt;Singer/Link (funded by NASA, Navy, etc.).  Another important center of current&lt;br /&gt;research in 3-D is Fred Brooks' lab at UNC (e.g. [2]).&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Virtual Reality and "Augmented Reality":&lt;/b&gt; The original work on&lt;br /&gt;VR was&lt;br /&gt;performed by Ivan  Sutherland when he was at Harvard (1965-1968, funding&lt;br /&gt;by Air&lt;br /&gt;Force, CIA, and Bell Labs). Very important early work was by Tom Furness&lt;br /&gt;when&lt;br /&gt;he was at Wright-Patterson AFB.  Myron Krueger's early work at the University&lt;br /&gt;of Connecticut was influential.  Fred Brooks' and Henry Fuch's groups at&lt;br /&gt;UNC&lt;br /&gt;did a lot of early research, including the study of force feedback (1971,&lt;br /&gt;funding from US Atomic Energy Commission and NSF). Much of the early research&lt;br /&gt;on head-mounted displays and on the DataGlove was supported by NASA.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Computer Supported Cooperative Work&lt;/b&gt;.  Doug Engelbart's 1968&lt;br /&gt;demonstration of NLS [8] included the remote participation of multiple people&lt;br /&gt;at various sites (funding from ARPA, NASA, and Rome ADC).  Licklider and&lt;br /&gt;Taylor&lt;br /&gt;predicted on-line interactive communities in an 1968 article [20] and&lt;br /&gt;speculated about the problem of access being limited to the privileged.&lt;br /&gt;Electronic mail, still the most widespread multi-user software, was enabled&lt;br /&gt;by&lt;br /&gt;the ARPAnet, which became operational in 1969, and by the Ethernet from Xerox&lt;br /&gt;PARC in 1973.  An early computer conferencing system was Turoff's EIES system&lt;br /&gt;at the New Jersey Institute of Technology (1975).&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Natural language and speech:&lt;/b&gt; The fundamental research for speech&lt;br /&gt;and&lt;br /&gt;natural language understanding and generation has been performed at CMU,&lt;br /&gt;MIT,&lt;br /&gt;SRI, BBN, IBM, AT&amp;amp;T Bell Labs and BellCore, much of it government funded.&lt;br /&gt;See, for example, [34] for a survey of the early work.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;a name="RTFToC5"&gt;5.&lt;br /&gt;Software Tools and Architectures&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/h1&gt;&lt;p&gt;The area of user interface software tools is quite active now, and&lt;br /&gt;many&lt;br /&gt;companies are selling tools.  Most of today's applications are implemented&lt;br /&gt;using various forms of software tools.  For a more complete survey and&lt;br /&gt;discussion of UI tools, see [26].&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;UIMSs and Toolkits&lt;/b&gt;: (There are software libraries and tools&lt;br /&gt;that&lt;br /&gt;support creating interfaces by writing code.)  The first User Interface&lt;br /&gt;Management System (UIMS) was William Newman's Reaction Handler [30] created&lt;br /&gt;at&lt;br /&gt;Imperial College, London (1966-67 with SRC funding).  Most of the early work&lt;br /&gt;was done at universities (Univ. of Toronto with Canadian government funding,&lt;br /&gt;George Washington Univ. with NASA, NSF, DOE, and NBS funding, Brigham Young&lt;br /&gt;University with industrial funding, etc.).  The term "UIMS" was coined by&lt;br /&gt;David&lt;br /&gt;Kasik at Boeing (1982) [14].  Early window managers such as Smalltalk (1974)&lt;br /&gt;and InterLisp, both from Xerox PARC, came with a few widgets, such as popup&lt;br /&gt;menus and scrollbars.  The Xerox Star (1981) was the first commercial system&lt;br /&gt;to&lt;br /&gt;have a large collection of widgets.  The Apple Macintosh (1984) was the first&lt;br /&gt;to actively promote its toolkit for use by other developers to enforce a&lt;br /&gt;consistent interface.  An early C++ toolkit was InterViews [21], developed&lt;br /&gt;at&lt;br /&gt;Stanford (1988, industrial funding).  Much of the modern research is being&lt;br /&gt;performed at universities, for example the Garnet (1988) [28] and Amulet&lt;br /&gt;(1994) [27] projects at CMU (ARPA funded), and subArctic at Georgia Tech&lt;br /&gt;(1996,&lt;br /&gt;funding by Intel and NSF).&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Interface Builders:&lt;/b&gt; (These are interactive tools that allow interfaces&lt;br /&gt;composed of widgets such as buttons, menus and scrollbars to be placed using&lt;br /&gt;a&lt;br /&gt;mouse.)  The Steamer project at BBN (1979-85; ONR funding) demonstrated many&lt;br /&gt;of&lt;br /&gt;the ideas later incorporated into interface builders and was probably the&lt;br /&gt;first&lt;br /&gt;object-oriented graphics system.  Trillium [12] was developed at Xerox PARC&lt;br /&gt;in&lt;br /&gt;1981.  Another early interface builder was the MenuLay system [5] developed&lt;br /&gt;by&lt;br /&gt;Bill Buxton at the University of Toronto (1983, funded by the Canadian&lt;br /&gt;Government).  The Macintosh (1984) included a "Resource Editor" which allowed&lt;br /&gt;widgets to be placed and edited.  Jean-Marie Hullot created "SOS Interface"&lt;br /&gt;in&lt;br /&gt;Lisp for the Macintosh while working at INRIA (1984, funded by the French&lt;br /&gt;government) which was the first modern "interface builder."  Hullot built&lt;br /&gt;this&lt;br /&gt;into a commercial product in 1986 and then went to work for NeXT and created&lt;br /&gt;the NeXT Interface Builder (1988), which popularized this type of tool. &lt;br /&gt;Now&lt;br /&gt;there are literally hundreds of commercial interface builders.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Component Architectures:&lt;/b&gt; The idea of creating interfaces by connecting&lt;br /&gt;separately written components was first demonstrated in the Andrew project&lt;br /&gt;[32]&lt;br /&gt;by Carnegie Mellon University's Information Technology Center (1983, funded&lt;br /&gt;by&lt;br /&gt;IBM).  It is now being widely popularized by Microsoft's OLE and Apple's&lt;br /&gt;OpenDoc architectures.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;a name="RTFToC6"&gt;6.&lt;br /&gt;Discussion&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/h1&gt;&lt;p&gt;It is clear that all of the most important innovations in Human-Computer&lt;br /&gt;Interaction have benefited from research at both corporate research labs&lt;br /&gt;and&lt;br /&gt;universities, much of it funded by the government.  The conventional style&lt;br /&gt;of&lt;br /&gt;graphical user interfaces that use windows, icons, menus and a mouse and&lt;br /&gt;are in&lt;br /&gt;a phase of standardization, where almost everyone is using the same, standard&lt;br /&gt;technology and just making minute, incremental changes.  Therefore, it is&lt;br /&gt;important that university, corporate, and government-supported research&lt;br /&gt;continue, so that we can develop the science and technology needed for the&lt;br /&gt;user&lt;br /&gt;interfaces of the future.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Another important argument in favor of HCI research in universities is that&lt;br /&gt;computer science students need to know about user interface issues.  User&lt;br /&gt;interfaces are likely to be one of the main value-added competitive advantages&lt;br /&gt;of the future, as both hardware and basic software become commodities.  If&lt;br /&gt;students do not know about user interfaces, they will not serve industry&lt;br /&gt;needs.&lt;br /&gt;It seems that only through computer science does HCI research disseminate&lt;br /&gt;out&lt;br /&gt;into products.  Furthermore, without appropriate levels of funding of academic&lt;br /&gt;HCI research, there will be fewer PhD graduates in HCI to perform research&lt;br /&gt;in&lt;br /&gt;corporate labs, and fewer top-notch graduates in this area will be interested&lt;br /&gt;in being professors, so the needed user interface courses will not be&lt;br /&gt;offered.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;As computers get faster, more of the processing power is being devoted to&lt;br /&gt;the&lt;br /&gt;user interface.  The interfaces of the future will use gesture recognition,&lt;br /&gt;speech recognition and generation, "intelligent agents," adaptive interfaces,&lt;br /&gt;video, and many other technologies now being investigated by research groups&lt;br /&gt;at&lt;br /&gt;universities and corporate labs [35].  It is imperative that this research&lt;br /&gt;continue and be well-supported.&lt;br /&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="RTFToC7"&gt;ACKNOWLEDGMENTS&lt;/a&gt;&lt;br /&gt;&lt;/h1&gt;&lt;p&gt;I must thank a large number of people who responded to posts of earlier&lt;br /&gt;versions of this article on the announcements.chi mailing list for their&lt;br /&gt;very&lt;br /&gt;generous help, and to Jim Hollan who helped edit the short excerpt of this&lt;br /&gt;article.  Much of the information in this article was supplied by (in&lt;br /&gt;alphabetical order): Stacey Ashlund, Meera M. Blattner, Keith Butler, Stuart&lt;br /&gt;K.&lt;br /&gt;Card, Bill Curtis, David E. Damouth, Dan Diaper, Dick Duda, Tim T.K. Dudley,&lt;br /&gt;Steven Feiner, Harry Forsdick, Bjorn Freeman-Benson, John Gould, Wayne Gray,&lt;br /&gt;Mark Green, Fred Hansen, Bill Hefley, D. Austin Henderson, Jim Hollan,&lt;br /&gt;Jean-Marie Hullot, Rob Jacob, Bonnie John, Sandy Kobayashi, T.K. Landauer,&lt;br /&gt;John&lt;br /&gt;Leggett, Roger Lighty, Marilyn Mantei, Jim Miller, William Newman, Jakob&lt;br /&gt;Nielsen, Don Norman, Dan Olsen, Ramesh Patil, Gary Perlman, Dick Pew, Ken&lt;br /&gt;Pier,&lt;br /&gt;Jim Rhyne, Ben Shneiderman, John Sibert, David C. Smith, Elliot Soloway,&lt;br /&gt;Richard Stallman, Ivan Sutherland, Dan Swinehart, John Thomas, Alex Waibel,&lt;br /&gt;Marceli Wein, Mark Weiser, Alan Wexelblat, and Terry Winograd.  Editorial&lt;br /&gt;comments were also provided by the above as well as Ellen Borison, Rich&lt;br /&gt;McDaniel, Rob Miller, Bernita Myers, Yoshihiro Tsujino, and the reviewers.&lt;br /&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="RTFToC8"&gt;References&lt;/a&gt;&lt;br /&gt;&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;1. Baecker, R., &lt;i&gt;et al.&lt;/i&gt;, "A Historical and Intellectual Perspective,"&lt;br /&gt;in&lt;br /&gt;&lt;i&gt;Readings in Human-Computer Interaction: Toward the Year 2000, Second&lt;br /&gt;Edition&lt;/i&gt;, R. Baecker, &lt;i&gt;et al.&lt;/i&gt;, Editors. 1995, Morgan Kaufmann&lt;br /&gt;Publishers, Inc.: San Francisco. pp. 35-47.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2. Brooks, F. "The Computer "Scientist" as Toolsmith--Studies in Interactive&lt;br /&gt;Computer Graphics," in  &lt;i&gt;IFIP Conference Proceedings.&lt;/i&gt; 1977. pp.&lt;br /&gt;625-634.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;3. Burtnyk, N. and Wein, M., "Computer Generated Key Frame Animation&lt;i&gt;.&lt;/i&gt;"&lt;br /&gt;&lt;i&gt;Journal Of the Society of Motion Picture and Television Engineers&lt;/i&gt;,&lt;br /&gt;1971.&lt;br /&gt;&lt;b&gt;8&lt;/b&gt;(3): pp. 149-153.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;4. Bush, V., "As We May Think&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;The Atlantic Monthly&lt;/i&gt;, 1945.&lt;br /&gt;&lt;b&gt;176&lt;/b&gt;(July): pp. 101-108. Reprinted and discussed in&lt;br /&gt;&lt;i&gt;interactions&lt;/i&gt;,&lt;br /&gt;3(2), Mar 1996, pp. 35-67.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;5. Buxton, W., &lt;i&gt;et al.&lt;/i&gt; "Towards a Comprehensive User Interface Management&lt;br /&gt;System," in  &lt;i&gt;Proceedings SIGGRAPH'83: Computer Graphics.&lt;/i&gt; 1983. Detroit,&lt;br /&gt;Mich. &lt;b&gt;17&lt;/b&gt;. pp. 35-42.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;6. Card, S.K., "Pioneers and Settlers: Methods Used in Successful User&lt;br /&gt;Interface Design," in &lt;i&gt;Human-Computer Interface Design: Success Stories,&lt;br /&gt;Emerging Methods, and Real-World Context&lt;/i&gt;, M. Rudisill, &lt;i&gt;et al.&lt;/i&gt;,&lt;br /&gt;Editors. 1996, Morgan Kaufmann Publishers: San Francisco. pp. 122-169.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;7. Coons, S. "An Outline of the Requirements for a Computer-Aided Design&lt;br /&gt;System," in  &lt;i&gt;AFIPS Spring Joint Computer Conference.&lt;/i&gt; 1963. &lt;b&gt;23&lt;/b&gt;.&lt;br /&gt;pp. 299-304.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;8. Engelbart, D. and English, W., "A Research Center for Augmenting Human&lt;br /&gt;Intellect&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;Reprinted in ACM SIGGRAPH Video Review, 1994.&lt;/i&gt;,&lt;br /&gt;1968.&lt;br /&gt;&lt;b&gt;106&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;9. English, W.K., Engelbart, D.C., and Berman, M.L., "Display Selection&lt;br /&gt;Techniques for Text Manipulation&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;IEEE Transactions on Human Factors&lt;br /&gt;in Electronics&lt;/i&gt;, 1967. &lt;b&gt;HFE-8&lt;/b&gt;(1)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;10. Goldberg, A., ed. &lt;i&gt;A History of Personal Workstations&lt;/i&gt;. 1988,&lt;br /&gt;Addison-Wesley Publishing Company: New York, NY. 537.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;11. Goldberg, A. and Robson, D. "A Metaphor for User Interface Design," in&lt;br /&gt;&lt;i&gt;Proceedings of the 12th Hawaii International Conference on System&lt;br /&gt;Sciences.&lt;/i&gt; 1979. &lt;b&gt;1&lt;/b&gt;. pp. 148-157.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;12. Henderson Jr, D.A. "The Trillium User Interface Design Environment,"&lt;br /&gt;in&lt;br /&gt;&lt;i&gt;Proceedings SIGCHI'86: Human Factors in Computing Systems.&lt;/i&gt; 1986. Boston,&lt;br /&gt;MA. pp. 221-227.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;13. Johnson, T. "Sketchpad III: Three Dimensional Graphical Communication&lt;br /&gt;with&lt;br /&gt;a Digital Computer," in  &lt;i&gt;AFIPS Spring Joint Computer Conference.&lt;/i&gt; 1963.&lt;br /&gt;&lt;b&gt;23&lt;/b&gt;. pp. 347-353.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;14. Kasik, D.J. "A User Interface Management System," in  &lt;i&gt;Proceedings&lt;br /&gt;SIGGRAPH'82: Computer Graphics.&lt;/i&gt; 1982. Boston, MA. &lt;b&gt;16&lt;/b&gt;. pp. 99-106.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;15. Kay, A., &lt;i&gt;The Reactive Engine.&lt;/i&gt; PhD Thesis, Electrical Engineering&lt;br /&gt;and&lt;br /&gt;Computer Science University of Utah, 1969,&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;16. Kay, A., "Personal Dynamic Media&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;IEEE Computer&lt;/i&gt;, 1977.&lt;br /&gt;&lt;b&gt;10&lt;/b&gt;(3): pp. 31-42.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;17. Koved, L. and Shneiderman, B., "Embedded menus: Selecting items in&lt;br /&gt;context&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;Communications of the ACM&lt;/i&gt;, 1986. &lt;b&gt;4&lt;/b&gt;(29): pp.&lt;br /&gt;312-318.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;18. Levinthal, C., "Molecular Model-Building by Computer&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;Scientific&lt;br /&gt;American&lt;/i&gt;, 1966. &lt;b&gt;214&lt;/b&gt;(6): pp. 42-52.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;19. Levy, S., &lt;i&gt;Hackers: Heroes of the Computer Revolution.&lt;/i&gt; 1984, Garden&lt;br /&gt;City, NY: Anchor Press/Doubleday.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;20. Licklider, J.C.R. and Taylor, R.W., "The computer as Communication&lt;br /&gt;Device&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;Sci. Tech.&lt;/i&gt;, 1968. &lt;b&gt;April&lt;/b&gt;: pp. 21-31.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;21. Linton, M.A., Vlissides, J.M., and Calder, P.R., "Composing user interfaces&lt;br /&gt;with InterViews&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;IEEE Computer&lt;/i&gt;, 1989. &lt;b&gt;22&lt;/b&gt;(2): pp. 8-22.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;22. Meyrowitz, N. and Van Dam, A., "Interactive Editing Systems: Part 1 and&lt;br /&gt;2&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;ACM Computing Surveys&lt;/i&gt;, 1982. &lt;b&gt;14&lt;/b&gt;(3): pp. 321-352.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;23. Myers, B.A., "The User Interface for Sapphire&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;IEEE Computer&lt;br /&gt;Graphics and Applications&lt;/i&gt;, 1984. &lt;b&gt;4&lt;/b&gt;(12): pp. 13-23.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;24. Myers, B.A., "A Taxonomy of User Interfaces for Window Managers&lt;i&gt;.&lt;/i&gt;"&lt;br /&gt;&lt;i&gt;IEEE Computer Graphics and Applications&lt;/i&gt;, 1988. &lt;b&gt;8&lt;/b&gt;(5): pp. 65-84.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;25. Myers, B.A., "All the Widgets&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;SIGGRAPH Video Review&lt;/i&gt;,&lt;br /&gt;1990.&lt;br /&gt;&lt;b&gt;57&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;26. Myers, B.A., "User Interface Software Tools&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;ACM Transactions&lt;br /&gt;on&lt;br /&gt;Computer Human Interaction&lt;/i&gt;, 1995. &lt;b&gt;2&lt;/b&gt;(1): pp. 64-103.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;27. Myers, B.A., &lt;i&gt;et al.&lt;/i&gt;, &lt;i&gt;The Amulet V2.0 Reference Manual&lt;/i&gt; .&lt;br /&gt;Carnegie Mellon University Computer Science Department Report, Number, Feb,&lt;br /&gt;1996. System available from http://www.cs.cmu.edu/~amulet.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;28. Myers, B.A., &lt;i&gt;et al.&lt;/i&gt;, "Garnet: Comprehensive Support for Graphical,&lt;br /&gt;Highly-Interactive User Interfaces&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;IEEE Computer&lt;/i&gt;, 1990.&lt;br /&gt;&lt;b&gt;23&lt;/b&gt;(11): pp. 71-85.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;29. Nelson, T. "A File Structure for the Complex, the Changing, and the&lt;br /&gt;Indeterminate," in  &lt;i&gt;Proceedings ACM National Conference.&lt;/i&gt; 1965. pp.&lt;br /&gt;84-100.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;30. Newman, W.M. "A System for Interactive Graphical Programming," in  &lt;i&gt;AFIPS&lt;br /&gt;Spring Joint Computer Conference.&lt;/i&gt; 1968. &lt;b&gt;28&lt;/b&gt;. pp. 47-54.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;31. Nielsen, J., &lt;i&gt;Multimedia and Hypertext: the Internet and Beyond.&lt;/i&gt;&lt;br /&gt;1995, Boston: Academic Press Professional.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;32. Palay, A.J., &lt;i&gt;et al.&lt;/i&gt; "The Andrew Toolkit - An Overview," in&lt;br /&gt;&lt;i&gt;Proceedings Winter Usenix Technical Conference.&lt;/i&gt; 1988. Dallas, Tex.&lt;br /&gt;pp.&lt;br /&gt;9-21.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;33. Press, L., "Before the Altair: The History of Personal Computing&lt;i&gt;.&lt;/i&gt;"&lt;br /&gt;&lt;i&gt;Communications of the ACM&lt;/i&gt;, 1993. &lt;b&gt;36&lt;/b&gt;(9): pp. 27-33.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;34. Reddy, D.R., "Speech Recognition by Machine: A Review," in &lt;i&gt;Readings&lt;br /&gt;in&lt;br /&gt;Speech Recognition&lt;/i&gt;, A. Waibel and K.-F. Lee, Editors. 1990, Morgan&lt;br /&gt;Kaufmann: San Mateo, CA. pp. 8-38.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;35. Reddy, R., "To Dream the Possible Dream (Turing Award Lecture)&lt;i&gt;.&lt;/i&gt;"&lt;br /&gt;&lt;i&gt;Communications of the ACM&lt;/i&gt;, 1996. &lt;b&gt;39&lt;/b&gt;(5): pp. 105-112.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;36. Robertson, G., Newell, A., and Ramakrishna, K., &lt;i&gt;ZOG: A Man-Machine&lt;br /&gt;Communication Philosophy&lt;/i&gt; .  Carnegie Mellon University Technical Report&lt;br /&gt;Report, Number, August, 1977.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;37. Ross, D. and Rodriguez, J. "Theoretical Foundations for the Computer-Aided&lt;br /&gt;Design System," in  &lt;i&gt;AFIPS Spring Joint Computer Conference.&lt;/i&gt; 1963.&lt;br /&gt;&lt;b&gt;23&lt;/b&gt;. pp. 305-322.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;38. Rudisill, M., &lt;i&gt;et al.&lt;/i&gt;, &lt;i&gt;Human-Computer Interface Design: Success&lt;br /&gt;Stories, Emerging Methods, and Real-World Context.&lt;/i&gt; 1996, San Francisco:&lt;br /&gt;Morgan Kaufmann Publishers.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;39. Scheifler, R.W. and Gettys, J., "The X Window System&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;ACM&lt;br /&gt;Transactions on Graphics&lt;/i&gt;, 1986. &lt;b&gt;5&lt;/b&gt;(2): pp. 79-109.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;40. Shneiderman, B., "Direct Manipulation: A Step Beyond Programming&lt;br /&gt;Languages&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;IEEE Computer&lt;/i&gt;, 1983. &lt;b&gt;16&lt;/b&gt;(8): pp. 57-69.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;41. Smith, D.C., &lt;i&gt;Pygmalion: A Computer Program to Model and Stimulate&lt;br /&gt;Creative Thought.&lt;/i&gt; 1977, Basel, Stuttgart: Birkhauser Verlag. PhD Thesis,&lt;br /&gt;Stanford University Computer Science Department, 1975.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;42. Smith, D.C., &lt;i&gt;et al.&lt;/i&gt; "The Star User Interface: an Overview," in&lt;br /&gt;&lt;i&gt;Proceedings of the 1982 National Computer Conference.&lt;/i&gt; 1982. AFIPS.&lt;br /&gt;pp.&lt;br /&gt;515-528.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;43. Stallman, R.M., &lt;i&gt;Emacs: The Extensible, Customizable, Self-Documenting&lt;br /&gt;Display Editor&lt;/i&gt; .  MIT Artificial Intelligence Lab Report, Number, Aug,&lt;br /&gt;1979, 1979.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;44. Sutherland, I.E. "SketchPad: A Man-Machine Graphical Communication System,"&lt;br /&gt;in  &lt;i&gt;AFIPS Spring Joint Computer Conference.&lt;/i&gt; 1963. &lt;b&gt;23&lt;/b&gt;. pp.&lt;br /&gt;329-346.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;45. Swinehart, D., &lt;i&gt;et al.&lt;/i&gt;, "A Structural View of the Cedar Programming&lt;br /&gt;Environment&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;ACM Transactions on Programming Languages and&lt;br /&gt;Systems&lt;/i&gt;, 1986. &lt;b&gt;8&lt;/b&gt;(4): pp. 419-490.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;46. Swinehart, D.C., &lt;i&gt;Copilot: A Multiple Process Approach to Interactive&lt;br /&gt;Programming Systems.&lt;/i&gt; PhD Thesis, Computer Science Department Stanford&lt;br /&gt;University, 1974,  SAIL Memo AIM-230 and CSD Report STAN-CS-74-412.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;47. Teitelman, W., "A Display Oriented Programmer's Assistant&lt;i&gt;.&lt;/i&gt;"&lt;br /&gt;&lt;i&gt;International Journal of Man-Machine Studies&lt;/i&gt;, 1979. &lt;b&gt;11&lt;/b&gt;: pp.&lt;br /&gt;157-187. Also Xerox PARC Technical Report CSL-77-3, Palo Alto, CA,  March&lt;br /&gt;8,&lt;br /&gt;1977.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;48. Tolliver, B., &lt;i&gt;TVEdit&lt;/i&gt; .  Stanford Time Sharing Memo Report, Number,&lt;br /&gt;March, 1965.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;49. van Dam, A., &lt;i&gt;et al.&lt;/i&gt; "A Hypertext Editing System for the 360,"&lt;br /&gt;in&lt;br /&gt;&lt;i&gt;Proceedings Conference in Computer Graphics.&lt;/i&gt; 1969. University of&lt;br /&gt;Illinois.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;50. van Dam, A. and Rice, D.E., "On-line Text Editing: A Survey&lt;i&gt;.&lt;/i&gt;"&lt;br /&gt;&lt;i&gt;Computing Surveys&lt;/i&gt;, 1971. &lt;b&gt;3&lt;/b&gt;(3): pp. 93-114.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;51. Williams, G., "The Lisa Computer System&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;Byte Magazine&lt;/i&gt;,&lt;br /&gt;1983. &lt;b&gt;8&lt;/b&gt;(2): pp. 33-50.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;52. Williams, G., "The Apple Macintosh Computer&lt;i&gt;.&lt;/i&gt;" &lt;i&gt;Byte&lt;/i&gt;, 1984.&lt;br /&gt;&lt;b&gt;9&lt;/b&gt;(2): pp. 30-54.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;/p&gt; &lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-301956445698622159?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/301956445698622159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=301956445698622159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/301956445698622159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/301956445698622159'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/09/brief-history-of-human-computer.html' title=''/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-6621976532220299408</id><published>2008-09-26T06:04:00.002-07:00</published><updated>2008-09-27T06:59:28.146-07:00</updated><title type='text'></title><content type='html'>&lt;DIV class=content&gt;&lt;br /&gt;&lt;H2&gt;---------Making Gabor-----Matlab------&lt;/H2&gt;&lt;br /&gt;&lt;P&gt;source:http://faculty.washington.edu/ionefine/html/MakingAGabor.html&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;-------function summary-----------&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp; LINSPACE Linearly spaced vector.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINSPACE(X1, X2) generates a row vector of 100 linearly&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; equally spaced points between X1 and X2.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINSPACE(X1, X2, N) generates N points between X1 and X2.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For N &amp;lt; 2, LINSPACE returns X2.&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;Now to create a&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt; Gabor (a sinusoid windowed by a Gaussian)&lt;/FONT&gt; becomes a piece of cake. We simply multiply the two-dimensional Gaussian window by the two-dimensional Gabor. &lt;/P&gt;&lt;br /&gt;&lt;P&gt;------------------------------------&lt;/P&gt;&lt;br /&gt;&lt;H2&gt;Contents&lt;/H2&gt;&lt;br /&gt;&lt;DIV&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt;&lt;LI&gt;&lt;A href="http://faculty.washington.edu/ionefine/html/MakingAGabor.html#1"&gt;&lt;FONT color=#800080&gt;Making a Gabor&lt;/FONT&gt;&lt;/A&gt; &lt;br /&gt;&lt;LI&gt;&lt;A href="http://faculty.washington.edu/ionefine/html/MakingAGabor.html#3"&gt;&lt;FONT color=#800080&gt;plotting 1D Gaussian&lt;/FONT&gt;&lt;/A&gt; &lt;br /&gt;&lt;LI&gt;&lt;A href="http://faculty.washington.edu/ionefine/html/MakingAGabor.html#4"&gt;&lt;FONT color=#800080&gt;create 2D Gaussian&lt;/FONT&gt;&lt;/A&gt; &lt;br /&gt;&lt;LI&gt;&lt;A href="http://faculty.washington.edu/ionefine/html/MakingAGabor.html#5"&gt;&lt;FONT color=#800080&gt;view 2D Gaussian&lt;/FONT&gt;&lt;/A&gt; &lt;br /&gt;&lt;LI&gt;&lt;A href="http://faculty.washington.edu/ionefine/html/MakingAGabor.html#6"&gt;&lt;FONT color=#800080&gt;Using the Gaussian filter to filter other images&lt;/FONT&gt;&lt;/A&gt; &lt;br /&gt;&lt;LI&gt;&lt;A href="http://faculty.washington.edu/ionefine/html/MakingAGabor.html#7"&gt;&lt;FONT color=#800080&gt;create 1-D sinusoid&lt;/FONT&gt;&lt;/A&gt; &lt;br /&gt;&lt;LI&gt;&lt;A href="http://faculty.washington.edu/ionefine/html/MakingAGabor.html#8"&gt;&lt;FONT color=#800080&gt;Create 1-D sinusoidal grating&lt;/FONT&gt;&lt;/A&gt; &lt;br /&gt;&lt;LI&gt;&lt;A href="http://faculty.washington.edu/ionefine/html/MakingAGabor.html#9"&gt;&lt;FONT color=#800080&gt;Create 2-D sinusoid&lt;/FONT&gt;&lt;/A&gt; &lt;br /&gt;&lt;LI&gt;&lt;A href="http://faculty.washington.edu/ionefine/html/MakingAGabor.html#10"&gt;&lt;FONT color=#800080&gt;Create a Gabor&lt;/FONT&gt;&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;H2&gt;Making a Gabor&lt;A name=1&gt;&lt;/A&gt;&lt;/H2&gt;&lt;br /&gt;&lt;P&gt;Here we are going to use some of the things we have learned to make a Gabor filter. These are regularly used for image processing. They are also popular as stimuli among vision scientists. &lt;/P&gt;&lt;PRE class=codeinput&gt;sd=0.3; &lt;SPAN class=comment&gt;&lt;FONT color=#228b22&gt;% standard deviation&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;x=linspace(-1,1,100);&lt;br /&gt;y=(1/sqrt(2*pi*sd)).*exp(-.5*((x/sd).^2));  &lt;SPAN class=comment&gt;&lt;FONT color=#228b22&gt;% create a normal distribution&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;y=y./max(y); &lt;SPAN class=comment&gt;&lt;FONT color=#228b22&gt;% scale it so it goes from 0-1&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;P&gt;So y is a 1-d Gaussian with a standard deviation of sd=0.3. It has a minimum value of 0 and a maximum value of 1. We can plot this and see what it looks like. &lt;/P&gt;&lt;br /&gt;&lt;H2&gt;plotting 1D Gaussian&lt;A name=3&gt;&lt;/A&gt;&lt;/H2&gt;&lt;PRE class=codeinput&gt;plot(x, y);&lt;br /&gt;&lt;/PRE&gt;&lt;IMG hspace=5 src="http://faculty.washington.edu/ionefine/html/MakingAGabor_01.png" vspace=5&gt; &lt;br /&gt;&lt;H2&gt;create 2D Gaussian&lt;A name=4&gt;&lt;/A&gt;&lt;/H2&gt;&lt;br /&gt;&lt;P&gt;Now we use the outer product to create a two-dimensional Gaussian filter, with a maximum value of 1 and a minimum of 0&lt;/P&gt;&lt;PRE class=codeinput&gt;filt=(y'*y);&lt;br /&gt;disp(min(filt(:)));&lt;br /&gt;disp(max(filt(:)));&lt;br /&gt;&lt;/PRE&gt;&lt;PRE class=codeoutput&gt;  1.4962e-005&lt;br /&gt;&lt;br /&gt;     1&lt;br /&gt;&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;H2&gt;view 2D Gaussian&lt;A name=5&gt;&lt;/A&gt;&lt;/H2&gt;&lt;br /&gt;&lt;P&gt;And then we can look what that two dimensional Gaussian looks like. We are going to allow the colormap to take 256 possible values of gray. That means we want filt to vary between 1 and 256. &lt;/P&gt;&lt;PRE class=codeinput&gt;colormap(gray(256));&lt;br /&gt;newmax=256;&lt;br /&gt;newmin=1;&lt;br /&gt;delta = (newmax-newmin);&lt;br /&gt;scaled_filt = delta*filt + newmin;&lt;br /&gt;image(scaled_filt);&lt;br /&gt;&lt;/PRE&gt;&lt;IMG hspace=5 src="http://faculty.washington.edu/ionefine/html/MakingAGabor_02.png" vspace=5&gt; &lt;br /&gt;&lt;H2&gt;Using the Gaussian filter to filter other images&lt;A name=6&gt;&lt;/A&gt;&lt;/H2&gt;&lt;br /&gt;&lt;P&gt;We can then use this Gaussian window to filter any image we want. Let’s say we want to filter a sinusoidal grating. We actually use much the same set of tricks. &lt;/P&gt;&lt;br /&gt;&lt;H2&gt;create 1-D sinusoid&lt;A name=7&gt;&lt;/A&gt;&lt;/H2&gt;&lt;PRE class=codeinput&gt;sf=6; &lt;SPAN class=comment&gt;&lt;FONT color=#228b22&gt;% spatial freq in cycles per image&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;y2=sin(x*pi*sf);&lt;br /&gt;y2=scaleif(y2, 0, 1);&lt;br /&gt;plot(x, y2);&lt;br /&gt;&lt;/PRE&gt;&lt;PRE class=codeoutput&gt;ans =&lt;br /&gt;&lt;br /&gt;     2&lt;br /&gt;&lt;br /&gt;&lt;/PRE&gt;&lt;IMG hspace=5 src="http://faculty.washington.edu/ionefine/html/MakingAGabor_03.png" vspace=5&gt; &lt;br /&gt;&lt;H2&gt;Create 1-D sinusoidal grating&lt;A name=8&gt;&lt;/A&gt;&lt;/H2&gt;&lt;br /&gt;&lt;P&gt;This now gives us a 1-dimensional sinusoidal grating with a frequency of 6 cycles per image. We will scale it so it has a minimum value of 0 and a maximum value of 1. If we calculate the outer product of this sinusoid with itself we get a weird checkerboard. &lt;/P&gt;&lt;PRE class=codeinput&gt;img=(y2'*y2);&lt;br /&gt;colormap(gray(256));&lt;br /&gt;scaled_img = delta*img + newmin;&lt;br /&gt;image(scaled_img);&lt;br /&gt;&lt;/PRE&gt;&lt;IMG hspace=5 src="http://faculty.washington.edu/ionefine/html/MakingAGabor_04.png" vspace=5&gt; &lt;br /&gt;&lt;H2&gt;Create 2-D sinusoid&lt;A name=9&gt;&lt;/A&gt;&lt;/H2&gt;&lt;br /&gt;&lt;P&gt;What we want to do is calculate the outer product of the one-dimensional sinusoid with a vector of ones.&lt;/P&gt;&lt;PRE class=codeinput&gt;y3=ones(size(y2));&lt;br /&gt;img=(y3'*y2);&lt;br /&gt;colormap(gray(256))&lt;br /&gt;scaled_img = delta*img + newmin;&lt;br /&gt;image(scaled_img)&lt;br /&gt;&lt;SPAN class=comment&gt;&lt;FONT color=#228b22&gt;% Once again, img has a minimum of 0 and a maximum of 1&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;disp(max(img(:)))&lt;br /&gt;disp(min(img(:)))&lt;br /&gt;&lt;/PRE&gt;&lt;PRE class=codeoutput&gt;     1&lt;br /&gt;&lt;br /&gt;     0&lt;br /&gt;&lt;br /&gt;&lt;/PRE&gt;&lt;IMG hspace=5 src="http://faculty.washington.edu/ionefine/html/MakingAGabor_05.png" vspace=5&gt; &lt;br /&gt;&lt;H2&gt;Create a Gabor&lt;A name=10&gt;&lt;/A&gt;&lt;/H2&gt;&lt;br /&gt;&lt;P&gt;Now to create a&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt; Gabor (a sinusoid windowed by a Gaussian)&lt;/FONT&gt; becomes a piece of cake. We simply multiply the two-dimensional Gaussian window by the two-dimensional Gabor. &lt;/P&gt;&lt;PRE class=codeinput&gt;gabor=img.*filt;&lt;br /&gt;scaled_gabor=delta.*gabor+1;&lt;br /&gt;colormap(gray(256))&lt;br /&gt;image(scaled_gabor);&lt;br /&gt;&lt;/PRE&gt;&lt;IMG hspace=5 src="http://faculty.washington.edu/ionefine/html/MakingAGabor_06.png" vspace=5&gt; &lt;br /&gt;&lt;P&gt;Note that throughout this process we have worked with two versions of the Gaussian and the Gabor. The original versions (filt, img) were scaled between 0 and 1. We did this to keep the nice property that when the Gaussian filter was at its maximum, the brightness of the grating didn’t change, and when the Gaussian filter was at 0 the Gabor was also at 0. But when we used image to look at these matrices we converted them to range between 1-256 so as to match the colormap. &lt;/P&gt;&lt;br /&gt;&lt;P class=footer&gt;&lt;BR&gt;Published with MATLAB® 7.5&lt;BR&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-6621976532220299408?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/6621976532220299408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=6621976532220299408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/6621976532220299408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/6621976532220299408'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/09/making-gabor-matlab-sourcehttpfaculty.html' title=''/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-2734877792794173947</id><published>2008-09-26T06:04:00.001-07:00</published><updated>2008-09-27T06:59:10.642-07:00</updated><title type='text'></title><content type='html'>&lt;BR&gt;&lt;br /&gt;&lt;DIV class=header&gt;&lt;br /&gt;&lt;H2&gt;&lt;A id=homepage_link href="http://psychtoolbox.org/wikka.php?wakka=HomePage"&gt;&lt;FONT color=#800080&gt;Psychtoolbox Wiki&lt;/FONT&gt;&lt;/A&gt; : &lt;A title="Display a list of pages linking to PsychtoolboxTutorial" href="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/backlinks"&gt;PsychtoolboxTutorial&lt;/A&gt;&lt;/H2&gt;&lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=CategoryCategory"&gt;Categories&lt;/A&gt; :: &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=PageIndex"&gt;PageIndex&lt;/A&gt; :: &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=RecentChanges"&gt;RecentChanges&lt;/A&gt; :: &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=RecentlyCommented"&gt;RecentlyCommented&lt;/A&gt; :: &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=UserSettings"&gt;Login/Register&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=header&gt;&amp;nbsp;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=header&gt;source:http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial&lt;/DIV&gt;&lt;br /&gt;&lt;H3 class=page id=hn_Psychtoolbox-3_Tutorial&gt;&lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=HomePage"&gt;&lt;FONT color=#800080&gt;Psychtoolbox-3&lt;/FONT&gt;&lt;/A&gt; Tutorial &lt;/H3&gt;&lt;br /&gt;&lt;DIV class=page&gt;&lt;BR&gt;It would be great if someone could extend this tutorial for new features and standard operating procedures for version 3.&lt;BR&gt;&lt;BR&gt;Until then, the following downloadable PDF file may give you a coarse overview over PTB-3's new features:&lt;BR&gt;&lt;A class=ext href="http://svn.berlios.de/viewcvs/*checkout*/osxptb/trunk/Psychtoolbox/PsychDocumentation/Psychtoolbox3-Slides.pdf"&gt;Talk slides of Psychtoolbox presentation, given at ECVP 2007 Arezzo&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;H4 class=page id=hn_Strengths_of_Matlab_Psychtoolbox&gt;Strengths of Matlab &amp;amp; Psychtoolbox &lt;/H4&gt;&lt;br /&gt;&lt;DIV class=page&gt;&lt;BR&gt;Interpretive general language &amp;amp; a good interface to hardware&lt;BR&gt;&lt;BR&gt;Unlike most software packages for experimental psychology and visual psychophysics, the Psychtoolbox is very general. It doesn't contain specific support for generating gratings, running trials, etc. Rather, it provides the user of a high-level interpreted language (Matlab) with a well-defined interface to the graphics hardware (frame buffer and lookup table) that drives the display. In this sense, it is a very generic tool. The power comes from the fact that once you can write arbitrary matrices into the frame buffer and lookup table as fast as the machine can go, everything else is easy to program in Matlab.&lt;BR&gt;&lt;BR&gt;Matlab is a high level interpreted language with extensive support for numerical calculation (The &lt;A class=ext href="http://www.mathworks.com/"&gt;MathWorks&lt;/A&gt;, 1993). The Psychophysics Toolbox provides a Matlab interface to the computer’s hardware. The core Psychtoolbox routines provide access to the display frame buffer and color lookup table, allow synchronization with the vertical blanking, support millisecond timing, and facilitate the collection of observer responses.&lt;BR&gt;&lt;BR&gt;The Psychtoolbox doesn't limit the user—if the experiment can be run on the hardware, it can be run with the Psychtoolbox. In comparison, other environments for creating perception experiments provide very evolved support for specific experiments. Our experience with software packages not based on a general-purpose programming language has been that the very first thing we wanted to do turned out to be impossible.&lt;BR&gt;&lt;BR&gt;We think the Matlab-Psychtoolbox combination has four winning features that we’d recommend for any experiment-design environment:&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=page&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt;&lt;LI&gt;A general purpose language (Matlab) allows you to do new things. &lt;br /&gt;&lt;LI&gt;For programs that use hardware intensely (e.g. display, keyboard), an interpreted environment (e.g. Matlab) speeds up software development greatly because simple tests can be performed immediately. &lt;br /&gt;&lt;LI&gt;The key Psychtoolbox routines are C code, callable as functions from Matlab, that encapsulate the hardware, presenting a simple software interface to the user that provides full control. (In particular, the Psychtoolbox &lt;b&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;Screen.mex function provides a consistent high-performance user interface&lt;/FONT&gt;&lt;/b&gt; to the display, overcoming differences in synchronization behavior among graphics drivers from many manufacturers, within and between Mac and Win platforms.) &lt;br /&gt;&lt;LI&gt;The Psychtoolbox Rush function allows you to run an arbitrary bit of code with little or no interruption. We call this "hogging the machine", blocking interrupts for the few seconds of a critical stimulus presentation. &lt;/LI&gt;&lt;/UL&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;BR&gt;The Psychtoolbox also provides interfaces for timing, sound, keyboard, and the serial port. And it includes many useful Matlab routines, such as color space transformations (Brainard, 1995; Brainard, Pelli, and Robson, 2002) and the QUEST (Watson and Pelli, 1983; Pelli and Farell, 1995) threshold seeking algorithm.&lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;2. Transforming numbers into movies&lt;BR&gt;&lt;BR&gt;Using a high-level platform-independent language like Matlab, it's easy to produce a matrix of numbers specifying the desired luminances of all the pixels in the displayed image. Today's off-the-shelf personal computers can copy those numbers from memory to video memory quickly enough to show a new image on every frame of a CRT monitor. However, high-level languages generally provide only rudimentary control of the vital transformations from number to color, and of the rate at which successive images are displayed.&lt;BR&gt;&lt;BR&gt;That is where the Psychtoolbox comes in, providing simple but powerful functions to control the pixel transformation and timing synchronization of the computer-display interface.&lt;BR&gt;&lt;BR&gt;Here’s a quick sketch of how computers display images. (See Brainard, Pelli, and Robson, 2002, for a fuller treatment.) Once the matrix of numbers has been loaded into frame buffer memory, the subsequent transformation from number to luminance (or color) is complicated, but usefully simplified to three steps. First, at video rates (e.g. 100 million pixels per second), each number passes through a lookup table, typically one 8-bit number in and three 8-to-10-bit numbers out, each driving an 8-to-10-bit digital-to-analog converter. Second, the three analog video signals drive the three guns of a color CRT. The luminance of light emitted by each monitor phosphor is proportional to the corresponding gun's beam current, which is an accelerating function of drive voltage; this is called the monitor's "gamma" function. Third, the luminous image is blurred by the point spread function of the beam.&lt;BR&gt;&lt;BR&gt;Most graphics cards have adjustable pixel size, typically 8, 16, or 32 bits per pixel. Furthermore, while most have 8-bit Digital to Analog Converters (DACs), a few have 9- or 10-bit DACs. Many users write to ask what these numbers of bits mean. In the pixmap, each pixel is assigned a certain number of bits, 8, 16 or 32. The number of bits per pixel determines how many different colors you can have in one frame: 256, thousands, or millions. When you actually display an image, the pixel value is used as in index into a lookup table on your graphics card. The values in the lookup table are typically 8 bits per channel, but some cards have 9 or 10 bits per channel. Those values, output from the lookup table then drive digital to analog converters (DACs) with a corresponding precision, 8 to 10 bits. In 8-bit mode you can select any 256 colors. Within the lookup table, each color is specified by three 8-10 bit numbers. If instead you use the 32-bit mode (millions of colors) then the pixel is considered to be made up of three 8 bit values, one per channel (plus 8 bits of padding), each of which goes through a one-channel lookup table, again with 8-10 bit outputs. 16-bit mode is rarely useful. In that mode 5 bits are assigned to each channel (plus 1 bit of padding), allowing only 32 values per gun. Again, we have a longer treatment of this issue in our Display Characterization chapter (Brainard, Pelli, and Robson, 2002).&lt;BR&gt;3. Toolbox overview&lt;BR&gt;&lt;BR&gt;The basic idea is that you use Matlab to compute images or movies, and use new Matlab functions provided by the Psychtoolbox for accurate display. The Psychtoolbox routines treat the computer (Mac or Windows) as a display device: a frame buffer with a color lookup table. (To read about how to use frame buffers for visual psychophysics, see our psychophysics bibliography.)&lt;BR&gt;&lt;BR&gt;The software has three layers. First, there is Matlab code that you write and some Matlab utilities that we supply, e.g. to compute color lookup tables and implement the QUEST staircase procedure. Second, there are a set of Matlab extensions (MEX or DLL files) that are written in C but callable from within Matlab. Third, the extension files, in turn, use &lt;A class=ext href="http://www.opengl.org/"&gt;OpenGL&lt;/A&gt; for graphics output and operating system facilities for other input and output.&lt;BR&gt;&lt;BR&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;b&gt;The &lt;i&gt;Screen&lt;/i&gt; mex file is the heart of the Psychophysics Toolbox&lt;/b&gt;&lt;/FONT&gt;, providing many subfunctions (selected by a text argument) that control the display screen(s). Experiments typically begin with a call to Screen('OpenWindow') and end with a call to Screen('CloseAll'). Anywhere in between, you may copy an image from a Matlab matrix onto the screen using Screen('PutImage') and change the lookup table using Screen('LoadClut') or (even better) Screen('LoadNormalizedGammaTable'). Typically you'll create a window on each screen that you're using in your experiment. Copying within or between windows is very fast. And you can create an unlimited number of offscreen windows (in memory, not visible) that can then be shown, one after another, as a movie, by copying to an onscreen window. Other Screen functions display text and dialogs and provide frame-accurate timing.&lt;BR&gt;&lt;BR&gt;You can use the Screen function to write Matlab scripts that intermix graphics operations, calculations, and wait for observer responses. If you run the routines interactively from the command window, there will be a certain level of chaos as Matlab's windows overwrite parts of the experimental window. Still, this mode can be useful for debugging, especially if you restrict the window sizes to avoid overlap, or you have a second monitor.&lt;BR&gt;&lt;BR&gt;Operations such as synching to vertical blanking and writing color lookup tables depend on the kind of video card(s) you have, and their video drivers. New versions of the computer operating system often include new video drivers. The Psychtoolbox provides a uniform interface, but you should check the timing on your computer, by running ScreenTest.m.&lt;BR&gt;&lt;BR&gt;Note that Matlab has a number of built-in graphics commands, like BAR, that can draw into Matlab "figure" windows. Those commands won't draw into a Screen window. Use Matlab commands to draw into Matlab figures; use Screen to draw into Screen windows. For example, if you have an open Screen window, you can draw a black filled rectangle (10x25) in it by saying: Screen(window,'FillRect',BlackIndex(window),[0,0,25,10]). You can erase the whole window by overwriting with white: Screen(window,'FillRect').&lt;BR&gt;&lt;BR&gt;Priority&lt;BR&gt;&lt;BR&gt;A major challenge in doing psychophysics on modern personal computers is that operating systems are becoming more and more aggressive about stealing time away from your display code to do other things. Priority is a function that allows to protect your Matlab code (to some degree) from interruption. This allows you to keep your computer running more or less normally, with lots of background processes, yet grab complete control for the periods of time that it takes to present your stimuli.&lt;BR&gt;&lt;BR&gt;Other Psychophysics routines&lt;BR&gt;&lt;BR&gt;In addition to Screen and Priority, there are routines to satisfy all the needs of psychophysical experiments: Unbuffered keyboard i/o via &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=KbCheck/edit"&gt;KbCheck&lt;/A&gt;, &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=KbWait/edit"&gt;KbWait&lt;/A&gt;, &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=KbStrokeWait/edit"&gt;KbStrokeWait&lt;/A&gt;, &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=KbName/edit"&gt;KbName&lt;/A&gt; etc., mouse i/o via &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=SetMouse/edit"&gt;SetMouse&lt;/A&gt;, &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=GetMouse/edit"&gt;GetMouse&lt;/A&gt; and &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=GetClicks/edit"&gt;GetClicks&lt;/A&gt;, serial i/o via IOPort, timing via &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=GetSecs/edit"&gt;GetSecs&lt;/A&gt; and &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=WaitSecs/edit"&gt;WaitSecs&lt;/A&gt;, sounds via &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=PsychPortAudio"&gt;PsychPortAudio&lt;/A&gt; and Snd, and threshold-estimation via the Quest staircase procedure. Other routines interface to the &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=PhotoResearch/edit"&gt;PhotoResearch&lt;/A&gt; PR-650 color meter, save images as EPS files, interface with Eyetrackers or EEG systems. An overview of the basic routines can be found by typing &lt;i&gt;help PsychBasic&lt;/i&gt;. A high level overview over all categories of functions can be found by typing &lt;i&gt;help PsychToolbox&lt;/i&gt;.&lt;BR&gt;&lt;BR&gt;4. Displaying a grating with Screen.mex&lt;BR&gt;&lt;BR&gt;Let's write a program to display a grating. We’ll open up a window on the screen, write a Matlab matrix into our window (i.e. into the frame buffer), and then close the window. These functions, Screen('OpenWindow'), Screen('PutImage'), and Screen('Close'), along with functions to load the lookup table and sync to the vertical blanking, are the heart of the Psychtoolbox.&lt;BR&gt;&lt;BR&gt;First we open a full-screen window on screen 0 (the main monitor):&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;whichScreen = &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;;&lt;BR&gt;window = Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;whichScreen, '&lt;SPAN class=re0&gt;OpenWindow&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;This full-screen window contains the entire screen, every pixel. There is no menu bar, title bar or border. You can ask Screen to open as many windows as you like, on as many monitors as you have, but usually you’ll want just a full-screen window on one monitor.&lt;BR&gt;&lt;BR&gt;Next we figure out what numbers will produce white, gray, and black, and fill the whole window with gray.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;white = WhiteIndex&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;SPAN class=co1&gt;% pixel value for white&lt;/SPAN&gt;&lt;BR&gt;black = BlackIndex&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;SPAN class=co1&gt;% pixel value for black&lt;/SPAN&gt;&lt;BR&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt; = &lt;SPAN class=br0&gt;(&lt;/SPAN&gt;white+black&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;/&lt;SPAN class=nu0&gt;2&lt;/SPAN&gt;;&lt;BR&gt;inc = white-&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt;;&lt;BR&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window, '&lt;SPAN class=re0&gt;FillRect&lt;/SPAN&gt;', &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_1 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Now we use Matlab functions to compute a gabor patch (a grating vignetted by a gaussian envelope), and put that image into our window.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;SPAN class=br0&gt;[&lt;/SPAN&gt;x,y&lt;SPAN class=br0&gt;]&lt;/SPAN&gt; = &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/meshgrid.html"&gt;&lt;SPAN class=kw2&gt;meshgrid&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=nu0&gt;-100&lt;/SPAN&gt;:&lt;SPAN class=nu0&gt;100&lt;/SPAN&gt;, &lt;SPAN class=nu0&gt;-100&lt;/SPAN&gt;:&lt;SPAN class=nu0&gt;100&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;BR&gt;m = &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/exp.html"&gt;&lt;SPAN class=kw2&gt;exp&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;-&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;x/&lt;SPAN class=nu0&gt;50&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;.^&lt;SPAN class=nu0&gt;2&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;-&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;y/&lt;SPAN class=nu0&gt;50&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;.^&lt;SPAN class=nu0&gt;2&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; .&lt;SPAN class=me1&gt;*&lt;/SPAN&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/sin.html"&gt;&lt;SPAN class=kw2&gt;sin&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=nu0&gt;0.03&lt;/SPAN&gt;*&lt;SPAN class=nu0&gt;2&lt;/SPAN&gt;*&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/pi.html"&gt;&lt;SPAN class=kw2&gt;pi&lt;/SPAN&gt;&lt;/A&gt;*x&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;BR&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window, '&lt;SPAN class=re0&gt;PutImage&lt;/SPAN&gt;', &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt;+inc*m&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_2 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Now we ask the system to make our stimulus image visible at the beginning of the next video refresh interval, by "Flipping" it onto the visible display:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window, '&lt;SPAN class=re0&gt;Flip&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_3 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Now we pause, displaying the grating until the observer presses any key, and finally close the window.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;KbWait;&lt;BR&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;'&lt;SPAN class=re0&gt;CloseAll&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_4 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;That’s a complete program that will run on any computer with Matlab and the Psychtoolbox. It’s a slightly abbreviated version of &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=GratingDemo/edit"&gt;GratingDemo&lt;/A&gt;.m, which is included in the Psychtoolbox.&lt;BR&gt;&lt;BR&gt;In the above, the call to Screen('PutImage') slowly translates the Matlab double precision matrix into the pixmap format of the frame buffer. You won't want to do that while showing a movie. In that case you’d create a texture, which is allocated in your computer’s memory, and store the Matlab image matrix into it:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;w = Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window, '&lt;SPAN class=re0&gt;MakeTexture&lt;/SPAN&gt;', &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt;+inc*m&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_5 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Now, whenever you like, you can blit (i.e. copy) very quickly (up to 80 GB/s depending on your graphics hardware—run &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=ScreenTest/edit"&gt;ScreenTest&lt;/A&gt; to time your hardware) from the texture to onscreen graphics memory:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;'&lt;SPAN class=re0&gt;DrawTexture&lt;/SPAN&gt;', window, w&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_6 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;If you create multiple textures in advance, then you can show them, one after another, one per frame, to create a movie. The 'Flip' command will automatically synchronize to the vertical blanking of your display device:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;SPAN class=kw1&gt;for&lt;/SPAN&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt; = &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;:&lt;SPAN class=nu0&gt;100&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;'&lt;SPAN class=re0&gt;DrawTexture&lt;/SPAN&gt;', window, w&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;BR&gt;&amp;nbsp; &amp;nbsp; Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window,'&lt;SPAN class=re0&gt;Flip&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;BR&gt;&lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_7 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;The Psychtoolbox program MovieDemo.m illustrates this.&lt;BR&gt;&lt;BR&gt;Incidentally, if you display stimuli on the main screen, as we often do, then the Screen window will hide the main menu bar and obscure Matlab’s command window. That can be a problem if your program stops (perhaps due to an error) before closing the window. The keyboard will seem to be dead because its output is directed to the front most window, which belongs to Screen not Matlab, so Matlab won’t be aware of your typing. It’s ok. Remain calm. Typing Ctrl-C will stop your program if hasn't stopped already. Typing command-zero (on the Mac) or Alt-Tab (on Windows) will bring Matlab’s command window forward. That will restore keyboard input. The screen might still be hard to make out, if you’ve been playing with the lookup table. Typing&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/clear.html"&gt;&lt;SPAN class=kw2&gt;clear&lt;/SPAN&gt;&lt;/A&gt; Screen&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_8 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will cause Matlab to flush Screen.mex. Screen.mex, as part of its exit procedure, cleans up everything it did, closing all its windows and restoring the lookup table of all its displays. And everything will be hunky dory again. Remember the magic incantations: command-zero (Mac) or ALT-tab (Win) to bring the command window forward, and "clear screen" to restore the displays to normal.&lt;BR&gt;&lt;BR&gt;5. Examples&lt;BR&gt;&lt;BR&gt;You got yourself a computer, bought Matlab, and installed the Psychtoolbox. Now you want to get your experiment running. Where to begin?&lt;BR&gt;&lt;BR&gt;George Sperling pointed out to us recently that writing software from scratch is hard. It's much easier to edit an already working program that does something similar. The PsychDemos folder includes a variety of short programs that show how to do various specific things, including synthesizing and displaying a movie. Type&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; PsychDemos&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_9 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;at the Matlab prompt for a list.&lt;BR&gt;&lt;BR&gt;The Psychtoolbox website includes a Library page with links to programs written by other users. We invite everyone to send software to the Psychtoolbox forum, which automatically archives your message and enclosure. (Please include the keyword DONATE in the subject, so we can all search the forum for software.) We add links on the Library page to programs in the forum that appear to have enduring value.&lt;BR&gt;&lt;BR&gt;By the way, don’t shortchange yourself. Buy enough memory ($0.4/MB) and disk space ($3/GB) as well as a recent graphics card to work comfortably.&lt;BR&gt;&lt;BR&gt;6. Online help&lt;BR&gt;&lt;BR&gt;The Psychtoolbox has no manual. Matlab has manuals, but we hardly ever use them. Instead we use the HELP command. Typing&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_10 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will list a variety of broad topics on which Matlab offers help. You can ask for help on any function, including Matlab’s functions and any function in the Psychtoolbox. For example,&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/&amp;lt;a%20href="&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt;/techdoc/ref/meshgrid.html"&amp;gt;&lt;SPAN class=kw2&gt;meshgrid&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_11 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will explain how the Matlab function meshgrid works. Similarly,&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; Screen&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_12 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will give a brief synopsis of Screen. If you type&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; Psychtoolbox&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_13 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;you will get an overview of the hierarchical organization of the Psychtoolbox. For any of the subdirectories listed, you can get a synopsis of the functions in that subdirectory. So&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; PsychBasic&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_14 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will give you a synopsis of the core toolbox routines. The HELP facility is a fast way to explore Matlab and the Psychtoolbox, and we use it all the time.&lt;BR&gt;&lt;BR&gt;Some of the Psychtoolbox functions, like Screen, have a large number of subfunctions, making it impractical to include all the information in the HELP display. Simply typing&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_15 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will give you a synopsis of all the Screen subfunctions. For more detail on a specific subfunction, call Screen itself, adding a question mark to the sub function name.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;'&lt;SPAN class=re0&gt;CopyWindow?&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_16 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will type out helpful text for 'CopyWindow'. You can omit the parentheses and quote marks, because Matlab considers this&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen CopyWindow?&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_17 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;equivalent to the above.&lt;BR&gt;&lt;BR&gt;In our help text for specific functions, we've mostly followed Mathworks's help-text conventions. But note that we designate optional arguments to function calls by embracing them with square brackets. You're not meant to include these brackets when you actually call the function. For example, "help Snd" will tell you this:err = Snd(command,[sig],[rate]). What this means is that the "command" argument is required and the "sig" and "rate" arguments are optional. Thus, a typical call to Snd looks like this, and has no brackets: Snd('Play','Quack'). If you would like to force an optional argument explicitly to its default, you can typically pass the empty matrix. This is useful for functions with more than one optional argument where you'd like to (e.g.) accept the default on the first but explicitly pass the second.&lt;BR&gt;&lt;BR&gt;Matlab usually ignores case (at least on Mac and Win platforms), except in variable names and built-in functions. The Psychtoolbox, by default, ignores case, but this is a user-settable preference. Although lazy typists can type everything in lower case, keep in mind that this practice may lead to portability problems somewhere down the line.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Another helpful tool is lookfor. Suppose you want to convert a variable of cell type to something else, such as a matrix. However, you have no idea what the function might be called. &lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/lookfor.html"&gt;&lt;SPAN class=kw2&gt;lookfor&lt;/SPAN&gt;&lt;/A&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/cell.html"&gt;&lt;SPAN class=kw2&gt;cell&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_18 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;generates a list of all the functions with cell in the name. cell2mat is an obvious choice, and inspecting the list quickly teaches you about various cell related functions while you are working with the cell type. &lt;BR&gt;&lt;BR&gt;7. Parallelize&lt;BR&gt;&lt;BR&gt;Matlab is quick. Running on a 250 MHz PowerBook G3, the loop overhead is only 1 microsecond per iteration (after the first). Because it’s an interpreted language, it takes time (7 microseconds) to process each statement. However, one statement can perform a large number of elementary operations, e.g. adding two 100 element matrices requires 100 adds. Matlab does the elementary operations very efficiently. The large 76:1 ratio of the 7 microsecond statement overhead to the 0.09 microseconds per elementary operation (~ + - * / = = &amp;amp; | sin sign) is a defining characteristic of the language. You can run the Psychtoolbox program SpeedTest to assess these parameters for your own computer.&lt;BR&gt;&lt;BR&gt;The implication, worth remembering, is that the run time of statements that operate on fewer than 76 elements is mostly spent processing the statement, not the elements. An example may help.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;x = &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ones.html"&gt;&lt;SPAN class=kw2&gt;ones&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=nu0&gt;10&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;BR&gt;y = &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ones.html"&gt;&lt;SPAN class=kw2&gt;ones&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=nu0&gt;10&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_19 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;This creates two 100 element arrays. (They’re 10x10 square matrices.) In languages, like C or BASIC, that lack matrix operations, one would add x and y by writing a loop.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;SPAN class=kw1&gt;for&lt;/SPAN&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt; = &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;:&lt;SPAN class=nu0&gt;100&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; z&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; = x&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; + y&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;BR&gt;&lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_20 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;That works in Matlab too, but it runs very slowly, taking 800 microseconds (i.e. 8 microseconds per iteration, for 100 iterations). The right way to do this in Matlab is to operate on the whole matrix at once,&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;z = x + y;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_21 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;which takes just 16 microseconds. That’s 50 times faster!&lt;BR&gt;&lt;BR&gt;Again, the thing to remember is that the run time of statements that operate on fewer than 76 elements is mostly spent processing the statement, not the elements. An important part of learning Matlab is learning how to operate on lots of elements at once, as in the above example.&lt;BR&gt;&lt;BR&gt;All of the timing above is for compiled code. Matlab compiles functions and loops before executing them, so you’ll usually benefit from the compilation without having to think about it. The one case you should avoid is calling a script (i.e. not a function) repeatedly; you should convert that script into a function.&lt;BR&gt;&lt;BR&gt;8. Use the debugger&lt;BR&gt;&lt;BR&gt;Matlab has a great built-in debugger, allowing you to step through your program, examine and modify variables, and set breakpoints. However, in the Mac version, the way you start it up is confusing, at least the first time you do it, which discourages many people enough that they never discover how useful the debugger is.&lt;BR&gt;&lt;BR&gt;Be warned that, on the Mac, the debugger has slight difficulties with files that are in the Matlab toolbox folder (which includes the Psychtoolbox) and that the debugger may give a spurious error beep if you choose to debug a file whose name has any uppercase characters. For best results, debug a file outside the toolbox folder with a filename that’s entirely lowercase. Later on, once you've got the hang of using the debugger, you can ignore this restriction, but, as a beginner, it'll be less confusing to respect it.&lt;BR&gt;&lt;BR&gt;Suppose you just wrote a function called foo.m, and you’ve got the file open, in a window called "foo.m". Click on the debugger icon (a green bug) in the window’s title bar. This will open the debugger window, which (confusingly) is also called "foo.m". Note the debugger's flow control icons at the left end of the title bar. Now set a breakpoint somewhere in your program by clicking one of the dashes "—" that appear in the left margin of the window, next to each statement. Clicking the dash turns it into a red dot , a breakpoint. (You can set multiple breakpoints, if you like.)&lt;BR&gt;&lt;BR&gt;Sometimes when you try to set a breakpoint, you'll get a beep and no red dot. This usually means that Matlab is having trouble finding your file. (Which is sad, considering that it's got the file open.) Setting a breakpoint seems to be implemented in effect by issuing a command like "dbstop foo 17". This will fail if foo is neither in Matlab's path (a list of folders of likely places to find stuff) nor the current directory. You fix this by using the Matlab CD command to set the current directory to be the folder that contains the file your debugging, foo.m. If that succeeded, you should be able to open foo by typing "edit foo" in the command window. Now you should be able to set breakpoints without difficulty.&lt;BR&gt;&lt;BR&gt;Now you’re ready to run your program. You’d have thought that you could just click something to say "Go!". No such luck. You must now go back to the Matlab command window. Using the keyboard shortcut, type command-zero (on a Mac) or xxx (on Win) to bring the command window forward. Now run foo, by typing its name:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;foo&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_22 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;The program will begin execution and halt when it gets to your breakpoint. The command window will display a special prompt&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;K&amp;gt;&amp;gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_23 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;indicating that you’re in the debugger. You can issue any Matlab command you like. Mostly you’ll simply type variable names to see what values they have. You can resume execution by typing&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/dbcont.html"&gt;&lt;SPAN class=kw2&gt;dbcont&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_24 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;but, instead, you’ll probably find it more convenient to go back to the debugger window by typing the shortcut command-4 (Mac) or xxx (Win), and use the flow-control icons in the title bar. You can single step , descend into a subroutine , ascend to the calling program , continue , or stop . You can also add or remove breakpoints . When you’re done, you should remove all the breakpoints.&lt;BR&gt;&lt;BR&gt;9. Measuring threshold&lt;BR&gt;&lt;BR&gt;You can measure whatever you like, but it is often useful to measure the stimulus intensity that yields a criterion level of observer performance (Pelli and Farell, 1995). The Psychtoolbox includes Matlab code implementing the QUEST procedure for estimating threshold.&lt;BR&gt;&lt;BR&gt;Experiments are usually organized as a run (e.g. 40 to 100) of trials. Each trial presents stimuli to the observer and waits for a response. Each trial takes several seconds. To measure threshold you’ll write a loop, with one iteration per trial.&lt;BR&gt;&lt;BR&gt;Before starting the loop, you’ll initialize QUEST, giving it a rough guess for the value of threshold. You may also want to ask for the observer’s name and so on.&lt;BR&gt;&lt;BR&gt;Within that loop are the guts of your experiment. Typically you might call QUEST to ask it to suggest a good contrast to test at, based on the initial guess and all the observer’s responses so far. Then you’d compute an appropriate stimulus and display it briefly in a window. If you’re using a two-interval forced choice paradigm you’ll have two intervals, announce by beeps, and display the signal in only one of them. Then you’ll wait for the observer’s response, typically a keypress or mouse click. Finally, tell QUEST what contrast you actually tested at and whether the observer’s response was right or wrong. The Psychtoolbox demo program &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=ContrastThreshDemo/edit"&gt;ContrastThreshDemo&lt;/A&gt; illustrates how QUEST is used in the toolbox environment. We recommend discarding the observer’s first response, just in case he or she wasn’t quite ready.&lt;BR&gt;&lt;BR&gt;Finally, after the last trial, you’ll report QUEST’s threshold estimate and confidence interval.&lt;BR&gt;&lt;BR&gt;Judging from email queries we’ve received from users, the most common beginner’s mistake is to forget to leave things in the same state at the end of the trial as they were at the beginning. If you open a window at the beginning of the trial (on- or off-screen) then close it at the end. Otherwise you’ll eat up memory fast, adding yet another window on each trial. The symptom of this programming error is that the experiment works perfectly for a few trials but eventually fails, when it runs out of memory.&lt;BR&gt;&lt;BR&gt;We suggest that you avoid opening and closing windows (whether on- or off-screen) within a trial because it’s slow. It’s better to open all the windows you’ll need ahead of time and then just use them on each trial. Finally, after the last trial, you should close them all.&lt;BR&gt;&lt;BR&gt;10. Calibration&lt;BR&gt;&lt;BR&gt;Everyone says that you should calibrate your monitor so that you’ll know what you’re displaying, but rarely is software and a photometric instrument provided to help you do it. The Psychtoolbox, being free software, doesn’t include the instrument, but it does include software, in &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=PsychCal/edit"&gt;PsychCal&lt;/A&gt;, which should help, though it still isn’t as well documented as we’d like. Our measure page has some suggestions on what to buy. You may wish to read our chapter on display calibration (Brainard, Pelli, and Robson, 2002).&lt;BR&gt;&lt;BR&gt;11. use psychotoolbox and fMRI&lt;BR&gt;&lt;BR&gt;There are many ways you can interface matlab with your EEG or MRI system. Here is an example on how to make it work in fMRI. &lt;BR&gt;&lt;BR&gt;A - How the MRI is set&lt;BR&gt;&lt;BR&gt;The MRI trigger is converted via a ForbInterface unit (Current Designs) into a TTL send to the mouse port.&lt;BR&gt;The subject response is received via the same Forbinterface and plugged into your computer. Responses are perceived as keyboard keys.&lt;BR&gt;&lt;BR&gt;B - Basis of the program&lt;BR&gt;&lt;BR&gt;Make sure responses, MRI trigger (mousse) and timing are correct using the priorityLevel function&lt;BR&gt;e.g. priorityLevel=MaxPriority(['GetSecs'],['KbCheck'],['KbWait'],['GetClicks']);&lt;BR&gt;&lt;BR&gt;Get the starting point of the MRI with GetSecs, load your stimuli after each MRI pulse (mouse click) and record the timing&lt;BR&gt;e.g.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;MRIstart = GetSecs;&lt;BR&gt;WaitTTL = GetClicks;&lt;BR&gt;&lt;SPAN class=kw1&gt;if&lt;/SPAN&gt; WaitTTL == &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; t = GetSecs; t = t-MRIstart;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=co1&gt;% .. do something here ..&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_25 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;in the core of the experiment one can collect responses with KbCheck&lt;BR&gt;e.g.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;start = GetSecs;&lt;BR&gt;timeSecs = KbWait;&lt;BR&gt;&lt;SPAN class=br0&gt;[&lt;/SPAN&gt;keyDown, secs, keyCode&lt;SPAN class=br0&gt;]&lt;/SPAN&gt; = KbCheck;&lt;BR&gt;stop = GetSecs;&lt;BR&gt;rt_catch&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;nbtrial_catch&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; = stop - start;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;success = &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN class=kw1&gt;while&lt;/SPAN&gt; success == &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; pressed = &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;while&lt;/SPAN&gt; pressed == &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=br0&gt;[&lt;/SPAN&gt;pressed, secs, kbData&lt;SPAN class=br0&gt;]&lt;/SPAN&gt; = KbCheck;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;for&lt;/SPAN&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt; = &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;:&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/length.html"&gt;&lt;SPAN class=kw2&gt;length&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;keysWanted&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;if&lt;/SPAN&gt; kbData&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;keysWanted&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; == &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; success = &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keyPressed = keysWanted&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;break&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_26 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Finally, depending on your TR, the PPT will return an error message related to timing issues (too long delays)&lt;BR&gt;One can use WaitSecs between events (and after you collect the subject response) to make sure everything is ok&lt;BR&gt;e.g. WaitSecs(TR-TA); % given that you set the acquisition time (time to acquire a volume - TA) and repetition time (time between volumes - TR)&lt;BR&gt;&lt;BR&gt;ATTENTION: for an unknown reason FlushEvents overloads so it is not used here.&lt;BR&gt;&lt;BR&gt;12. Good luck!&lt;BR&gt;&lt;BR&gt;References&lt;BR&gt;&lt;BR&gt;Brainard, D. H. (1995) Colorimetry. In Handbook of Optics: Volume 1. Fundamentals, Techniques, and Design. M. Bass (ed.). &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=McGraw/edit"&gt;McGraw&lt;/A&gt;-Hill, New York, 26.1-54.&lt;BR&gt;&lt;BR&gt;Brainard, D. H. (1997) The Psychophysics Toolbox. Spatial Vision 10:433-436 (PDF)&lt;BR&gt;&lt;BR&gt;Brainard, D. H., Pelli, D.G., and Robson, T. (2002). Display characterization. In the Encyclopedia of Imaging Science and Technology. J. Hornak (ed.), Wiley. 172-188. (PDF)&lt;BR&gt;&lt;BR&gt;The &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=MathWorks/edit"&gt;MathWorks&lt;/A&gt; (1993) Matlab User's Guide. The &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=MathWorks/edit"&gt;MathWorks&lt;/A&gt;, Inc., Natick, MA.&lt;BR&gt;&lt;BR&gt;Pelli, D.G. (1997) The &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=VideoToolbox/edit"&gt;VideoToolbox&lt;/A&gt; software for visual psychophysics: Transforming numbers into movies. Spatial Vision 10:437-442. (HTML)&lt;BR&gt;&lt;BR&gt;Pelli, D. G. and Farell, B. (1995) Psychophysical methods. In Handbook of Optics: Volume 1. Fundamentals, Techniques, and Design. M. Bass (ed.). &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=McGraw/edit"&gt;McGraw&lt;/A&gt;-Hill, New York, 29.1-13.&lt;BR&gt;&lt;BR&gt;Pelli, D. G. and Zhang, L. (1991) Accurate control of contrast on microcomputer displays. Vision Research 31, 1337-1350. [pdf]&lt;BR&gt;&lt;BR&gt;Watson, A. B. and Pelli, D. G. (1983) QUEST: a Bayesian adaptive psychometric method. Perception and Psychophysics 33, 113-120&lt;BR&gt;&lt;BR&gt;To read PDF files you may want to download the free Acrobat reader from Adobe.&lt;BR&gt;&lt;BR&gt;Thanks to George Sperling for suggesting that a tutorial and examples would be useful.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;David Brainard, Denis Pelli &amp;amp; Allen Ingling.&lt;BR&gt;psychtoolbox@yahoogroups.com&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;/DIV&gt;19 September 2000 &lt;br /&gt;&lt;DIV class=footer&gt;&lt;br /&gt;&lt;FORM id=form_c2b696fff2 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial"&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;A title="Click to view recent edits to this page" href="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/history"&gt;Page History&lt;/A&gt; :: &lt;A title="Click to view recent revisions list for this page" href="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/revisions"&gt;2008-06-16 13:31:10&lt;/A&gt; &lt;A title="Click to view recent revisions list for this page" href="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/revisions.xml"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; VERTICAL-ALIGN: middle; BORDER-RIGHT-WIDTH: 0px" height=14 alt=XML src="http://psychtoolbox.org/images/xml.png" width=36&gt;&lt;/A&gt; :: Owner: &lt;A class=user title="Open user profile for DavidBrainard" href="http://psychtoolbox.org/wikka.php?wakka=DavidBrainard"&gt;DavidBrainard&lt;/A&gt; :: &lt;LABEL for=src_phrase&gt;Search:&lt;/LABEL&gt;  &lt;/FORM&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=smallprint&gt;&lt;A class=ext href="http://validator.w3.org/check/referer"&gt;Valid XHTML 1.0 Transitional&lt;/A&gt; :: &lt;A class=ext href="http://jigsaw.w3.org/css-validator/check/referer"&gt;Valid CSS&lt;/A&gt; :: Powered by &lt;A class=ext href="http://wikkawiki.org/"&gt;Wikka Wakka Wiki trunk&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=smallprint&gt;Page was generated in 1.4863 seconds&lt;/DIV&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-2734877792794173947?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/2734877792794173947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=2734877792794173947' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/2734877792794173947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/2734877792794173947'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/09/psychtoolbox-wiki-psychtoolboxtutorial.html' title=''/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-4274145771073885806</id><published>2008-09-26T06:04:00.000-07:00</published><updated>2008-09-27T06:59:28.176-07:00</updated><title type='text'></title><content type='html'>&lt;BR&gt;&lt;br /&gt;&lt;DIV class=header&gt;&lt;br /&gt;&lt;H2&gt;&lt;A id=homepage_link href="http://psychtoolbox.org/wikka.php?wakka=HomePage"&gt;&lt;FONT color=#800080&gt;Psychtoolbox Wiki&lt;/FONT&gt;&lt;/A&gt; : &lt;A title="Display a list of pages linking to PsychtoolboxTutorial" href="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/backlinks"&gt;PsychtoolboxTutorial&lt;/A&gt;&lt;/H2&gt;&lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=CategoryCategory"&gt;Categories&lt;/A&gt; :: &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=PageIndex"&gt;PageIndex&lt;/A&gt; :: &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=RecentChanges"&gt;RecentChanges&lt;/A&gt; :: &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=RecentlyCommented"&gt;RecentlyCommented&lt;/A&gt; :: &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=UserSettings"&gt;Login/Register&lt;/A&gt; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=header&gt;&amp;nbsp;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=header&gt;source:http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial&lt;/DIV&gt;&lt;br /&gt;&lt;H3 class=page id=hn_Psychtoolbox-3_Tutorial&gt;&lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=HomePage"&gt;&lt;FONT color=#800080&gt;Psychtoolbox-3&lt;/FONT&gt;&lt;/A&gt; Tutorial &lt;/H3&gt;&lt;br /&gt;&lt;DIV class=page&gt;&lt;BR&gt;It would be great if someone could extend this tutorial for new features and standard operating procedures for version 3.&lt;BR&gt;&lt;BR&gt;Until then, the following downloadable PDF file may give you a coarse overview over PTB-3's new features:&lt;BR&gt;&lt;A class=ext href="http://svn.berlios.de/viewcvs/*checkout*/osxptb/trunk/Psychtoolbox/PsychDocumentation/Psychtoolbox3-Slides.pdf"&gt;Talk slides of Psychtoolbox presentation, given at ECVP 2007 Arezzo&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;H4 class=page id=hn_Strengths_of_Matlab_Psychtoolbox&gt;Strengths of Matlab &amp;amp; Psychtoolbox &lt;/H4&gt;&lt;br /&gt;&lt;DIV class=page&gt;&lt;BR&gt;Interpretive general language &amp;amp; a good interface to hardware&lt;BR&gt;&lt;BR&gt;Unlike most software packages for experimental psychology and visual psychophysics, the Psychtoolbox is very general. It doesn't contain specific support for generating gratings, running trials, etc. Rather, it provides the user of a high-level interpreted language (Matlab) with a well-defined interface to the graphics hardware (frame buffer and lookup table) that drives the display. In this sense, it is a very generic tool. The power comes from the fact that once you can write arbitrary matrices into the frame buffer and lookup table as fast as the machine can go, everything else is easy to program in Matlab.&lt;BR&gt;&lt;BR&gt;Matlab is a high level interpreted language with extensive support for numerical calculation (The &lt;A class=ext href="http://www.mathworks.com/"&gt;MathWorks&lt;/A&gt;, 1993). The Psychophysics Toolbox provides a Matlab interface to the computer’s hardware. The core Psychtoolbox routines provide access to the display frame buffer and color lookup table, allow synchronization with the vertical blanking, support millisecond timing, and facilitate the collection of observer responses.&lt;BR&gt;&lt;BR&gt;The Psychtoolbox doesn't limit the user—if the experiment can be run on the hardware, it can be run with the Psychtoolbox. In comparison, other environments for creating perception experiments provide very evolved support for specific experiments. Our experience with software packages not based on a general-purpose programming language has been that the very first thing we wanted to do turned out to be impossible.&lt;BR&gt;&lt;BR&gt;We think the Matlab-Psychtoolbox combination has four winning features that we’d recommend for any experiment-design environment:&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=page&gt;&lt;br /&gt;&lt;UL&gt;&lt;br /&gt;&lt;LI&gt;A general purpose language (Matlab) allows you to do new things. &lt;br /&gt;&lt;LI&gt;For programs that use hardware intensely (e.g. display, keyboard), an interpreted environment (e.g. Matlab) speeds up software development greatly because simple tests can be performed immediately. &lt;br /&gt;&lt;LI&gt;The key Psychtoolbox routines are C code, callable as functions from Matlab, that encapsulate the hardware, presenting a simple software interface to the user that provides full control. (In particular, the Psychtoolbox &lt;b&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;Screen.mex function provides a consistent high-performance user interface&lt;/FONT&gt;&lt;/b&gt; to the display, overcoming differences in synchronization behavior among graphics drivers from many manufacturers, within and between Mac and Win platforms.) &lt;br /&gt;&lt;LI&gt;The Psychtoolbox Rush function allows you to run an arbitrary bit of code with little or no interruption. We call this "hogging the machine", blocking interrupts for the few seconds of a critical stimulus presentation. &lt;/LI&gt;&lt;/UL&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;P&gt;&lt;BR&gt;The Psychtoolbox also provides interfaces for timing, sound, keyboard, and the serial port. And it includes many useful Matlab routines, such as color space transformations (Brainard, 1995; Brainard, Pelli, and Robson, 2002) and the QUEST (Watson and Pelli, 1983; Pelli and Farell, 1995) threshold seeking algorithm.&lt;/P&gt;&lt;br /&gt;&lt;DIV&gt;&lt;BR&gt;2. Transforming numbers into movies&lt;BR&gt;&lt;BR&gt;Using a high-level platform-independent language like Matlab, it's easy to produce a matrix of numbers specifying the desired luminances of all the pixels in the displayed image. Today's off-the-shelf personal computers can copy those numbers from memory to video memory quickly enough to show a new image on every frame of a CRT monitor. However, high-level languages generally provide only rudimentary control of the vital transformations from number to color, and of the rate at which successive images are displayed.&lt;BR&gt;&lt;BR&gt;That is where the Psychtoolbox comes in, providing simple but powerful functions to control the pixel transformation and timing synchronization of the computer-display interface.&lt;BR&gt;&lt;BR&gt;Here’s a quick sketch of how computers display images. (See Brainard, Pelli, and Robson, 2002, for a fuller treatment.) Once the matrix of numbers has been loaded into frame buffer memory, the subsequent transformation from number to luminance (or color) is complicated, but usefully simplified to three steps. First, at video rates (e.g. 100 million pixels per second), each number passes through a lookup table, typically one 8-bit number in and three 8-to-10-bit numbers out, each driving an 8-to-10-bit digital-to-analog converter. Second, the three analog video signals drive the three guns of a color CRT. The luminance of light emitted by each monitor phosphor is proportional to the corresponding gun's beam current, which is an accelerating function of drive voltage; this is called the monitor's "gamma" function. Third, the luminous image is blurred by the point spread function of the beam.&lt;BR&gt;&lt;BR&gt;Most graphics cards have adjustable pixel size, typically 8, 16, or 32 bits per pixel. Furthermore, while most have 8-bit Digital to Analog Converters (DACs), a few have 9- or 10-bit DACs. Many users write to ask what these numbers of bits mean. In the pixmap, each pixel is assigned a certain number of bits, 8, 16 or 32. The number of bits per pixel determines how many different colors you can have in one frame: 256, thousands, or millions. When you actually display an image, the pixel value is used as in index into a lookup table on your graphics card. The values in the lookup table are typically 8 bits per channel, but some cards have 9 or 10 bits per channel. Those values, output from the lookup table then drive digital to analog converters (DACs) with a corresponding precision, 8 to 10 bits. In 8-bit mode you can select any 256 colors. Within the lookup table, each color is specified by three 8-10 bit numbers. If instead you use the 32-bit mode (millions of colors) then the pixel is considered to be made up of three 8 bit values, one per channel (plus 8 bits of padding), each of which goes through a one-channel lookup table, again with 8-10 bit outputs. 16-bit mode is rarely useful. In that mode 5 bits are assigned to each channel (plus 1 bit of padding), allowing only 32 values per gun. Again, we have a longer treatment of this issue in our Display Characterization chapter (Brainard, Pelli, and Robson, 2002).&lt;BR&gt;3. Toolbox overview&lt;BR&gt;&lt;BR&gt;The basic idea is that you use Matlab to compute images or movies, and use new Matlab functions provided by the Psychtoolbox for accurate display. The Psychtoolbox routines treat the computer (Mac or Windows) as a display device: a frame buffer with a color lookup table. (To read about how to use frame buffers for visual psychophysics, see our psychophysics bibliography.)&lt;BR&gt;&lt;BR&gt;The software has three layers. First, there is Matlab code that you write and some Matlab utilities that we supply, e.g. to compute color lookup tables and implement the QUEST staircase procedure. Second, there are a set of Matlab extensions (MEX or DLL files) that are written in C but callable from within Matlab. Third, the extension files, in turn, use &lt;A class=ext href="http://www.opengl.org/"&gt;OpenGL&lt;/A&gt; for graphics output and operating system facilities for other input and output.&lt;BR&gt;&lt;BR&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;b&gt;The &lt;i&gt;Screen&lt;/i&gt; mex file is the heart of the Psychophysics Toolbox&lt;/b&gt;&lt;/FONT&gt;, providing many subfunctions (selected by a text argument) that control the display screen(s). Experiments typically begin with a call to Screen('OpenWindow') and end with a call to Screen('CloseAll'). Anywhere in between, you may copy an image from a Matlab matrix onto the screen using Screen('PutImage') and change the lookup table using Screen('LoadClut') or (even better) Screen('LoadNormalizedGammaTable'). Typically you'll create a window on each screen that you're using in your experiment. Copying within or between windows is very fast. And you can create an unlimited number of offscreen windows (in memory, not visible) that can then be shown, one after another, as a movie, by copying to an onscreen window. Other Screen functions display text and dialogs and provide frame-accurate timing.&lt;BR&gt;&lt;BR&gt;You can use the Screen function to write Matlab scripts that intermix graphics operations, calculations, and wait for observer responses. If you run the routines interactively from the command window, there will be a certain level of chaos as Matlab's windows overwrite parts of the experimental window. Still, this mode can be useful for debugging, especially if you restrict the window sizes to avoid overlap, or you have a second monitor.&lt;BR&gt;&lt;BR&gt;Operations such as synching to vertical blanking and writing color lookup tables depend on the kind of video card(s) you have, and their video drivers. New versions of the computer operating system often include new video drivers. The Psychtoolbox provides a uniform interface, but you should check the timing on your computer, by running ScreenTest.m.&lt;BR&gt;&lt;BR&gt;Note that Matlab has a number of built-in graphics commands, like BAR, that can draw into Matlab "figure" windows. Those commands won't draw into a Screen window. Use Matlab commands to draw into Matlab figures; use Screen to draw into Screen windows. For example, if you have an open Screen window, you can draw a black filled rectangle (10x25) in it by saying: Screen(window,'FillRect',BlackIndex(window),[0,0,25,10]). You can erase the whole window by overwriting with white: Screen(window,'FillRect').&lt;BR&gt;&lt;BR&gt;Priority&lt;BR&gt;&lt;BR&gt;A major challenge in doing psychophysics on modern personal computers is that operating systems are becoming more and more aggressive about stealing time away from your display code to do other things. Priority is a function that allows to protect your Matlab code (to some degree) from interruption. This allows you to keep your computer running more or less normally, with lots of background processes, yet grab complete control for the periods of time that it takes to present your stimuli.&lt;BR&gt;&lt;BR&gt;Other Psychophysics routines&lt;BR&gt;&lt;BR&gt;In addition to Screen and Priority, there are routines to satisfy all the needs of psychophysical experiments: Unbuffered keyboard i/o via &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=KbCheck/edit"&gt;KbCheck&lt;/A&gt;, &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=KbWait/edit"&gt;KbWait&lt;/A&gt;, &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=KbStrokeWait/edit"&gt;KbStrokeWait&lt;/A&gt;, &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=KbName/edit"&gt;KbName&lt;/A&gt; etc., mouse i/o via &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=SetMouse/edit"&gt;SetMouse&lt;/A&gt;, &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=GetMouse/edit"&gt;GetMouse&lt;/A&gt; and &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=GetClicks/edit"&gt;GetClicks&lt;/A&gt;, serial i/o via IOPort, timing via &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=GetSecs/edit"&gt;GetSecs&lt;/A&gt; and &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=WaitSecs/edit"&gt;WaitSecs&lt;/A&gt;, sounds via &lt;A class="" href="http://psychtoolbox.org/wikka.php?wakka=PsychPortAudio"&gt;PsychPortAudio&lt;/A&gt; and Snd, and threshold-estimation via the Quest staircase procedure. Other routines interface to the &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=PhotoResearch/edit"&gt;PhotoResearch&lt;/A&gt; PR-650 color meter, save images as EPS files, interface with Eyetrackers or EEG systems. An overview of the basic routines can be found by typing &lt;i&gt;help PsychBasic&lt;/i&gt;. A high level overview over all categories of functions can be found by typing &lt;i&gt;help PsychToolbox&lt;/i&gt;.&lt;BR&gt;&lt;BR&gt;4. Displaying a grating with Screen.mex&lt;BR&gt;&lt;BR&gt;Let's write a program to display a grating. We’ll open up a window on the screen, write a Matlab matrix into our window (i.e. into the frame buffer), and then close the window. These functions, Screen('OpenWindow'), Screen('PutImage'), and Screen('Close'), along with functions to load the lookup table and sync to the vertical blanking, are the heart of the Psychtoolbox.&lt;BR&gt;&lt;BR&gt;First we open a full-screen window on screen 0 (the main monitor):&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;whichScreen = &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;;&lt;BR&gt;window = Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;whichScreen, '&lt;SPAN class=re0&gt;OpenWindow&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;This full-screen window contains the entire screen, every pixel. There is no menu bar, title bar or border. You can ask Screen to open as many windows as you like, on as many monitors as you have, but usually you’ll want just a full-screen window on one monitor.&lt;BR&gt;&lt;BR&gt;Next we figure out what numbers will produce white, gray, and black, and fill the whole window with gray.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;white = WhiteIndex&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;SPAN class=co1&gt;% pixel value for white&lt;/SPAN&gt;&lt;BR&gt;black = BlackIndex&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;SPAN class=co1&gt;% pixel value for black&lt;/SPAN&gt;&lt;BR&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt; = &lt;SPAN class=br0&gt;(&lt;/SPAN&gt;white+black&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;/&lt;SPAN class=nu0&gt;2&lt;/SPAN&gt;;&lt;BR&gt;inc = white-&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt;;&lt;BR&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window, '&lt;SPAN class=re0&gt;FillRect&lt;/SPAN&gt;', &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_1 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Now we use Matlab functions to compute a gabor patch (a grating vignetted by a gaussian envelope), and put that image into our window.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;SPAN class=br0&gt;[&lt;/SPAN&gt;x,y&lt;SPAN class=br0&gt;]&lt;/SPAN&gt; = &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/meshgrid.html"&gt;&lt;SPAN class=kw2&gt;meshgrid&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=nu0&gt;-100&lt;/SPAN&gt;:&lt;SPAN class=nu0&gt;100&lt;/SPAN&gt;, &lt;SPAN class=nu0&gt;-100&lt;/SPAN&gt;:&lt;SPAN class=nu0&gt;100&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;BR&gt;m = &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/exp.html"&gt;&lt;SPAN class=kw2&gt;exp&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;-&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;x/&lt;SPAN class=nu0&gt;50&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;.^&lt;SPAN class=nu0&gt;2&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;-&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;y/&lt;SPAN class=nu0&gt;50&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;.^&lt;SPAN class=nu0&gt;2&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; .&lt;SPAN class=me1&gt;*&lt;/SPAN&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/sin.html"&gt;&lt;SPAN class=kw2&gt;sin&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=nu0&gt;0.03&lt;/SPAN&gt;*&lt;SPAN class=nu0&gt;2&lt;/SPAN&gt;*&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/pi.html"&gt;&lt;SPAN class=kw2&gt;pi&lt;/SPAN&gt;&lt;/A&gt;*x&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;BR&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window, '&lt;SPAN class=re0&gt;PutImage&lt;/SPAN&gt;', &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt;+inc*m&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_2 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Now we ask the system to make our stimulus image visible at the beginning of the next video refresh interval, by "Flipping" it onto the visible display:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window, '&lt;SPAN class=re0&gt;Flip&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_3 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Now we pause, displaying the grating until the observer presses any key, and finally close the window.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;KbWait;&lt;BR&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;'&lt;SPAN class=re0&gt;CloseAll&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_4 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;That’s a complete program that will run on any computer with Matlab and the Psychtoolbox. It’s a slightly abbreviated version of &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=GratingDemo/edit"&gt;GratingDemo&lt;/A&gt;.m, which is included in the Psychtoolbox.&lt;BR&gt;&lt;BR&gt;In the above, the call to Screen('PutImage') slowly translates the Matlab double precision matrix into the pixmap format of the frame buffer. You won't want to do that while showing a movie. In that case you’d create a texture, which is allocated in your computer’s memory, and store the Matlab image matrix into it:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;w = Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window, '&lt;SPAN class=re0&gt;MakeTexture&lt;/SPAN&gt;', &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gray.html"&gt;&lt;SPAN class=kw2&gt;gray&lt;/SPAN&gt;&lt;/A&gt;+inc*m&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_5 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Now, whenever you like, you can blit (i.e. copy) very quickly (up to 80 GB/s depending on your graphics hardware—run &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=ScreenTest/edit"&gt;ScreenTest&lt;/A&gt; to time your hardware) from the texture to onscreen graphics memory:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;'&lt;SPAN class=re0&gt;DrawTexture&lt;/SPAN&gt;', window, w&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_6 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;If you create multiple textures in advance, then you can show them, one after another, one per frame, to create a movie. The 'Flip' command will automatically synchronize to the vertical blanking of your display device:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;SPAN class=kw1&gt;for&lt;/SPAN&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt; = &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;:&lt;SPAN class=nu0&gt;100&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;'&lt;SPAN class=re0&gt;DrawTexture&lt;/SPAN&gt;', window, w&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;BR&gt;&amp;nbsp; &amp;nbsp; Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;window,'&lt;SPAN class=re0&gt;Flip&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;BR&gt;&lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_7 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;The Psychtoolbox program MovieDemo.m illustrates this.&lt;BR&gt;&lt;BR&gt;Incidentally, if you display stimuli on the main screen, as we often do, then the Screen window will hide the main menu bar and obscure Matlab’s command window. That can be a problem if your program stops (perhaps due to an error) before closing the window. The keyboard will seem to be dead because its output is directed to the front most window, which belongs to Screen not Matlab, so Matlab won’t be aware of your typing. It’s ok. Remain calm. Typing Ctrl-C will stop your program if hasn't stopped already. Typing command-zero (on the Mac) or Alt-Tab (on Windows) will bring Matlab’s command window forward. That will restore keyboard input. The screen might still be hard to make out, if you’ve been playing with the lookup table. Typing&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/clear.html"&gt;&lt;SPAN class=kw2&gt;clear&lt;/SPAN&gt;&lt;/A&gt; Screen&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_8 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will cause Matlab to flush Screen.mex. Screen.mex, as part of its exit procedure, cleans up everything it did, closing all its windows and restoring the lookup table of all its displays. And everything will be hunky dory again. Remember the magic incantations: command-zero (Mac) or ALT-tab (Win) to bring the command window forward, and "clear screen" to restore the displays to normal.&lt;BR&gt;&lt;BR&gt;5. Examples&lt;BR&gt;&lt;BR&gt;You got yourself a computer, bought Matlab, and installed the Psychtoolbox. Now you want to get your experiment running. Where to begin?&lt;BR&gt;&lt;BR&gt;George Sperling pointed out to us recently that writing software from scratch is hard. It's much easier to edit an already working program that does something similar. The PsychDemos folder includes a variety of short programs that show how to do various specific things, including synthesizing and displaying a movie. Type&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; PsychDemos&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_9 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;at the Matlab prompt for a list.&lt;BR&gt;&lt;BR&gt;The Psychtoolbox website includes a Library page with links to programs written by other users. We invite everyone to send software to the Psychtoolbox forum, which automatically archives your message and enclosure. (Please include the keyword DONATE in the subject, so we can all search the forum for software.) We add links on the Library page to programs in the forum that appear to have enduring value.&lt;BR&gt;&lt;BR&gt;By the way, don’t shortchange yourself. Buy enough memory ($0.4/MB) and disk space ($3/GB) as well as a recent graphics card to work comfortably.&lt;BR&gt;&lt;BR&gt;6. Online help&lt;BR&gt;&lt;BR&gt;The Psychtoolbox has no manual. Matlab has manuals, but we hardly ever use them. Instead we use the HELP command. Typing&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_10 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will list a variety of broad topics on which Matlab offers help. You can ask for help on any function, including Matlab’s functions and any function in the Psychtoolbox. For example,&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/&amp;lt;a%20href="&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt;/techdoc/ref/meshgrid.html"&amp;gt;&lt;SPAN class=kw2&gt;meshgrid&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_11 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will explain how the Matlab function meshgrid works. Similarly,&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; Screen&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_12 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will give a brief synopsis of Screen. If you type&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; Psychtoolbox&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_13 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;you will get an overview of the hierarchical organization of the Psychtoolbox. For any of the subdirectories listed, you can get a synopsis of the functions in that subdirectory. So&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/help.html"&gt;&lt;SPAN class=kw2&gt;help&lt;/SPAN&gt;&lt;/A&gt; PsychBasic&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_14 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will give you a synopsis of the core toolbox routines. The HELP facility is a fast way to explore Matlab and the Psychtoolbox, and we use it all the time.&lt;BR&gt;&lt;BR&gt;Some of the Psychtoolbox functions, like Screen, have a large number of subfunctions, making it impractical to include all the information in the HELP display. Simply typing&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_15 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will give you a synopsis of all the Screen subfunctions. For more detail on a specific subfunction, call Screen itself, adding a question mark to the sub function name.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;'&lt;SPAN class=re0&gt;CopyWindow?&lt;/SPAN&gt;'&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_16 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;will type out helpful text for 'CopyWindow'. You can omit the parentheses and quote marks, because Matlab considers this&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;Screen CopyWindow?&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_17 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;equivalent to the above.&lt;BR&gt;&lt;BR&gt;In our help text for specific functions, we've mostly followed Mathworks's help-text conventions. But note that we designate optional arguments to function calls by embracing them with square brackets. You're not meant to include these brackets when you actually call the function. For example, "help Snd" will tell you this:err = Snd(command,[sig],[rate]). What this means is that the "command" argument is required and the "sig" and "rate" arguments are optional. Thus, a typical call to Snd looks like this, and has no brackets: Snd('Play','Quack'). If you would like to force an optional argument explicitly to its default, you can typically pass the empty matrix. This is useful for functions with more than one optional argument where you'd like to (e.g.) accept the default on the first but explicitly pass the second.&lt;BR&gt;&lt;BR&gt;Matlab usually ignores case (at least on Mac and Win platforms), except in variable names and built-in functions. The Psychtoolbox, by default, ignores case, but this is a user-settable preference. Although lazy typists can type everything in lower case, keep in mind that this practice may lead to portability problems somewhere down the line.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Another helpful tool is lookfor. Suppose you want to convert a variable of cell type to something else, such as a matrix. However, you have no idea what the function might be called. &lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/lookfor.html"&gt;&lt;SPAN class=kw2&gt;lookfor&lt;/SPAN&gt;&lt;/A&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/cell.html"&gt;&lt;SPAN class=kw2&gt;cell&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_18 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;generates a list of all the functions with cell in the name. cell2mat is an obvious choice, and inspecting the list quickly teaches you about various cell related functions while you are working with the cell type. &lt;BR&gt;&lt;BR&gt;7. Parallelize&lt;BR&gt;&lt;BR&gt;Matlab is quick. Running on a 250 MHz PowerBook G3, the loop overhead is only 1 microsecond per iteration (after the first). Because it’s an interpreted language, it takes time (7 microseconds) to process each statement. However, one statement can perform a large number of elementary operations, e.g. adding two 100 element matrices requires 100 adds. Matlab does the elementary operations very efficiently. The large 76:1 ratio of the 7 microsecond statement overhead to the 0.09 microseconds per elementary operation (~ + - * / = = &amp;amp; | sin sign) is a defining characteristic of the language. You can run the Psychtoolbox program SpeedTest to assess these parameters for your own computer.&lt;BR&gt;&lt;BR&gt;The implication, worth remembering, is that the run time of statements that operate on fewer than 76 elements is mostly spent processing the statement, not the elements. An example may help.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;x = &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ones.html"&gt;&lt;SPAN class=kw2&gt;ones&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=nu0&gt;10&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;BR&gt;y = &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ones.html"&gt;&lt;SPAN class=kw2&gt;ones&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;SPAN class=nu0&gt;10&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_19 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;This creates two 100 element arrays. (They’re 10x10 square matrices.) In languages, like C or BASIC, that lack matrix operations, one would add x and y by writing a loop.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;SPAN class=kw1&gt;for&lt;/SPAN&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt; = &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;:&lt;SPAN class=nu0&gt;100&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; z&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; = x&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; + y&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;; &lt;BR&gt;&lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_20 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;That works in Matlab too, but it runs very slowly, taking 800 microseconds (i.e. 8 microseconds per iteration, for 100 iterations). The right way to do this in Matlab is to operate on the whole matrix at once,&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;z = x + y;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_21 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;which takes just 16 microseconds. That’s 50 times faster!&lt;BR&gt;&lt;BR&gt;Again, the thing to remember is that the run time of statements that operate on fewer than 76 elements is mostly spent processing the statement, not the elements. An important part of learning Matlab is learning how to operate on lots of elements at once, as in the above example.&lt;BR&gt;&lt;BR&gt;All of the timing above is for compiled code. Matlab compiles functions and loops before executing them, so you’ll usually benefit from the compilation without having to think about it. The one case you should avoid is calling a script (i.e. not a function) repeatedly; you should convert that script into a function.&lt;BR&gt;&lt;BR&gt;8. Use the debugger&lt;BR&gt;&lt;BR&gt;Matlab has a great built-in debugger, allowing you to step through your program, examine and modify variables, and set breakpoints. However, in the Mac version, the way you start it up is confusing, at least the first time you do it, which discourages many people enough that they never discover how useful the debugger is.&lt;BR&gt;&lt;BR&gt;Be warned that, on the Mac, the debugger has slight difficulties with files that are in the Matlab toolbox folder (which includes the Psychtoolbox) and that the debugger may give a spurious error beep if you choose to debug a file whose name has any uppercase characters. For best results, debug a file outside the toolbox folder with a filename that’s entirely lowercase. Later on, once you've got the hang of using the debugger, you can ignore this restriction, but, as a beginner, it'll be less confusing to respect it.&lt;BR&gt;&lt;BR&gt;Suppose you just wrote a function called foo.m, and you’ve got the file open, in a window called "foo.m". Click on the debugger icon (a green bug) in the window’s title bar. This will open the debugger window, which (confusingly) is also called "foo.m". Note the debugger's flow control icons at the left end of the title bar. Now set a breakpoint somewhere in your program by clicking one of the dashes "—" that appear in the left margin of the window, next to each statement. Clicking the dash turns it into a red dot , a breakpoint. (You can set multiple breakpoints, if you like.)&lt;BR&gt;&lt;BR&gt;Sometimes when you try to set a breakpoint, you'll get a beep and no red dot. This usually means that Matlab is having trouble finding your file. (Which is sad, considering that it's got the file open.) Setting a breakpoint seems to be implemented in effect by issuing a command like "dbstop foo 17". This will fail if foo is neither in Matlab's path (a list of folders of likely places to find stuff) nor the current directory. You fix this by using the Matlab CD command to set the current directory to be the folder that contains the file your debugging, foo.m. If that succeeded, you should be able to open foo by typing "edit foo" in the command window. Now you should be able to set breakpoints without difficulty.&lt;BR&gt;&lt;BR&gt;Now you’re ready to run your program. You’d have thought that you could just click something to say "Go!". No such luck. You must now go back to the Matlab command window. Using the keyboard shortcut, type command-zero (on a Mac) or xxx (on Win) to bring the command window forward. Now run foo, by typing its name:&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;foo&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_22 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;The program will begin execution and halt when it gets to your breakpoint. The command window will display a special prompt&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;K&amp;gt;&amp;gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_23 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;indicating that you’re in the debugger. You can issue any Matlab command you like. Mostly you’ll simply type variable names to see what values they have. You can resume execution by typing&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/dbcont.html"&gt;&lt;SPAN class=kw2&gt;dbcont&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_24 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;but, instead, you’ll probably find it more convenient to go back to the debugger window by typing the shortcut command-4 (Mac) or xxx (Win), and use the flow-control icons in the title bar. You can single step , descend into a subroutine , ascend to the calling program , continue , or stop . You can also add or remove breakpoints . When you’re done, you should remove all the breakpoints.&lt;BR&gt;&lt;BR&gt;9. Measuring threshold&lt;BR&gt;&lt;BR&gt;You can measure whatever you like, but it is often useful to measure the stimulus intensity that yields a criterion level of observer performance (Pelli and Farell, 1995). The Psychtoolbox includes Matlab code implementing the QUEST procedure for estimating threshold.&lt;BR&gt;&lt;BR&gt;Experiments are usually organized as a run (e.g. 40 to 100) of trials. Each trial presents stimuli to the observer and waits for a response. Each trial takes several seconds. To measure threshold you’ll write a loop, with one iteration per trial.&lt;BR&gt;&lt;BR&gt;Before starting the loop, you’ll initialize QUEST, giving it a rough guess for the value of threshold. You may also want to ask for the observer’s name and so on.&lt;BR&gt;&lt;BR&gt;Within that loop are the guts of your experiment. Typically you might call QUEST to ask it to suggest a good contrast to test at, based on the initial guess and all the observer’s responses so far. Then you’d compute an appropriate stimulus and display it briefly in a window. If you’re using a two-interval forced choice paradigm you’ll have two intervals, announce by beeps, and display the signal in only one of them. Then you’ll wait for the observer’s response, typically a keypress or mouse click. Finally, tell QUEST what contrast you actually tested at and whether the observer’s response was right or wrong. The Psychtoolbox demo program &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=ContrastThreshDemo/edit"&gt;ContrastThreshDemo&lt;/A&gt; illustrates how QUEST is used in the toolbox environment. We recommend discarding the observer’s first response, just in case he or she wasn’t quite ready.&lt;BR&gt;&lt;BR&gt;Finally, after the last trial, you’ll report QUEST’s threshold estimate and confidence interval.&lt;BR&gt;&lt;BR&gt;Judging from email queries we’ve received from users, the most common beginner’s mistake is to forget to leave things in the same state at the end of the trial as they were at the beginning. If you open a window at the beginning of the trial (on- or off-screen) then close it at the end. Otherwise you’ll eat up memory fast, adding yet another window on each trial. The symptom of this programming error is that the experiment works perfectly for a few trials but eventually fails, when it runs out of memory.&lt;BR&gt;&lt;BR&gt;We suggest that you avoid opening and closing windows (whether on- or off-screen) within a trial because it’s slow. It’s better to open all the windows you’ll need ahead of time and then just use them on each trial. Finally, after the last trial, you should close them all.&lt;BR&gt;&lt;BR&gt;10. Calibration&lt;BR&gt;&lt;BR&gt;Everyone says that you should calibrate your monitor so that you’ll know what you’re displaying, but rarely is software and a photometric instrument provided to help you do it. The Psychtoolbox, being free software, doesn’t include the instrument, but it does include software, in &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=PsychCal/edit"&gt;PsychCal&lt;/A&gt;, which should help, though it still isn’t as well documented as we’d like. Our measure page has some suggestions on what to buy. You may wish to read our chapter on display calibration (Brainard, Pelli, and Robson, 2002).&lt;BR&gt;&lt;BR&gt;11. use psychotoolbox and fMRI&lt;BR&gt;&lt;BR&gt;There are many ways you can interface matlab with your EEG or MRI system. Here is an example on how to make it work in fMRI. &lt;BR&gt;&lt;BR&gt;A - How the MRI is set&lt;BR&gt;&lt;BR&gt;The MRI trigger is converted via a ForbInterface unit (Current Designs) into a TTL send to the mouse port.&lt;BR&gt;The subject response is received via the same Forbinterface and plugged into your computer. Responses are perceived as keyboard keys.&lt;BR&gt;&lt;BR&gt;B - Basis of the program&lt;BR&gt;&lt;BR&gt;Make sure responses, MRI trigger (mousse) and timing are correct using the priorityLevel function&lt;BR&gt;e.g. priorityLevel=MaxPriority(['GetSecs'],['KbCheck'],['KbWait'],['GetClicks']);&lt;BR&gt;&lt;BR&gt;Get the starting point of the MRI with GetSecs, load your stimuli after each MRI pulse (mouse click) and record the timing&lt;BR&gt;e.g.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;MRIstart = GetSecs;&lt;BR&gt;WaitTTL = GetClicks;&lt;BR&gt;&lt;SPAN class=kw1&gt;if&lt;/SPAN&gt; WaitTTL == &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; t = GetSecs; t = t-MRIstart;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=co1&gt;% .. do something here ..&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_25 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;in the core of the experiment one can collect responses with KbCheck&lt;BR&gt;e.g.&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;br /&gt;&lt;DIV class=code style="FONT-FAMILY: monospace"&gt;start = GetSecs;&lt;BR&gt;timeSecs = KbWait;&lt;BR&gt;&lt;SPAN class=br0&gt;[&lt;/SPAN&gt;keyDown, secs, keyCode&lt;SPAN class=br0&gt;]&lt;/SPAN&gt; = KbCheck;&lt;BR&gt;stop = GetSecs;&lt;BR&gt;rt_catch&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;nbtrial_catch&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; = stop - start;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;success = &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN class=kw1&gt;while&lt;/SPAN&gt; success == &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; pressed = &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;while&lt;/SPAN&gt; pressed == &lt;SPAN class=nu0&gt;0&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=br0&gt;[&lt;/SPAN&gt;pressed, secs, kbData&lt;SPAN class=br0&gt;]&lt;/SPAN&gt; = KbCheck;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;for&lt;/SPAN&gt; &lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt; = &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;:&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/length.html"&gt;&lt;SPAN class=kw2&gt;length&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;keysWanted&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;if&lt;/SPAN&gt; kbData&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;keysWanted&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt; == &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; success = &lt;SPAN class=nu0&gt;1&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keyPressed = keysWanted&lt;SPAN class=br0&gt;(&lt;/SPAN&gt;&lt;A href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/i.html"&gt;&lt;SPAN class=kw2&gt;i&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=br0&gt;)&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;break&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=kw1&gt;end&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;FORM id=form_61092f4ded_26 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/grabcode" method=post&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;/FORM&gt;&lt;/DIV&gt;&lt;BR&gt;Finally, depending on your TR, the PPT will return an error message related to timing issues (too long delays)&lt;BR&gt;One can use WaitSecs between events (and after you collect the subject response) to make sure everything is ok&lt;BR&gt;e.g. WaitSecs(TR-TA); % given that you set the acquisition time (time to acquire a volume - TA) and repetition time (time between volumes - TR)&lt;BR&gt;&lt;BR&gt;ATTENTION: for an unknown reason FlushEvents overloads so it is not used here.&lt;BR&gt;&lt;BR&gt;12. Good luck!&lt;BR&gt;&lt;BR&gt;References&lt;BR&gt;&lt;BR&gt;Brainard, D. H. (1995) Colorimetry. In Handbook of Optics: Volume 1. Fundamentals, Techniques, and Design. M. Bass (ed.). &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=McGraw/edit"&gt;McGraw&lt;/A&gt;-Hill, New York, 26.1-54.&lt;BR&gt;&lt;BR&gt;Brainard, D. H. (1997) The Psychophysics Toolbox. Spatial Vision 10:433-436 (PDF)&lt;BR&gt;&lt;BR&gt;Brainard, D. H., Pelli, D.G., and Robson, T. (2002). Display characterization. In the Encyclopedia of Imaging Science and Technology. J. Hornak (ed.), Wiley. 172-188. (PDF)&lt;BR&gt;&lt;BR&gt;The &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=MathWorks/edit"&gt;MathWorks&lt;/A&gt; (1993) Matlab User's Guide. The &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=MathWorks/edit"&gt;MathWorks&lt;/A&gt;, Inc., Natick, MA.&lt;BR&gt;&lt;BR&gt;Pelli, D.G. (1997) The &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=VideoToolbox/edit"&gt;VideoToolbox&lt;/A&gt; software for visual psychophysics: Transforming numbers into movies. Spatial Vision 10:437-442. (HTML)&lt;BR&gt;&lt;BR&gt;Pelli, D. G. and Farell, B. (1995) Psychophysical methods. In Handbook of Optics: Volume 1. Fundamentals, Techniques, and Design. M. Bass (ed.). &lt;A class=missingpage title="Create this page" href="http://psychtoolbox.org/wikka.php?wakka=McGraw/edit"&gt;McGraw&lt;/A&gt;-Hill, New York, 29.1-13.&lt;BR&gt;&lt;BR&gt;Pelli, D. G. and Zhang, L. (1991) Accurate control of contrast on microcomputer displays. Vision Research 31, 1337-1350. [pdf]&lt;BR&gt;&lt;BR&gt;Watson, A. B. and Pelli, D. G. (1983) QUEST: a Bayesian adaptive psychometric method. Perception and Psychophysics 33, 113-120&lt;BR&gt;&lt;BR&gt;To read PDF files you may want to download the free Acrobat reader from Adobe.&lt;BR&gt;&lt;BR&gt;Thanks to George Sperling for suggesting that a tutorial and examples would be useful.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;David Brainard, Denis Pelli &amp;amp; Allen Ingling.&lt;BR&gt;psychtoolbox@yahoogroups.com&lt;BR&gt;&lt;br /&gt;&lt;DIV class=indent&gt;&lt;/DIV&gt;19 September 2000 &lt;br /&gt;&lt;DIV class=footer&gt;&lt;br /&gt;&lt;FORM id=form_c2b696fff2 action="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial"&gt;&lt;br /&gt;&lt;FIELDSET class=hidden&gt; &lt;/FIELDSET&gt; &lt;A title="Click to view recent edits to this page" href="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/history"&gt;Page History&lt;/A&gt; :: &lt;A title="Click to view recent revisions list for this page" href="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/revisions"&gt;2008-06-16 13:31:10&lt;/A&gt; &lt;A title="Click to view recent revisions list for this page" href="http://psychtoolbox.org/wikka.php?wakka=PsychtoolboxTutorial/revisions.xml"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; VERTICAL-ALIGN: middle; BORDER-RIGHT-WIDTH: 0px" height=14 alt=XML src="http://psychtoolbox.org/images/xml.png" width=36&gt;&lt;/A&gt; :: Owner: &lt;A class=user title="Open user profile for DavidBrainard" href="http://psychtoolbox.org/wikka.php?wakka=DavidBrainard"&gt;DavidBrainard&lt;/A&gt; :: &lt;LABEL for=src_phrase&gt;Search:&lt;/LABEL&gt;  &lt;/FORM&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=smallprint&gt;&lt;A class=ext href="http://validator.w3.org/check/referer"&gt;Valid XHTML 1.0 Transitional&lt;/A&gt; :: &lt;A class=ext href="http://jigsaw.w3.org/css-validator/check/referer"&gt;Valid CSS&lt;/A&gt; :: Powered by &lt;A class=ext href="http://wikkawiki.org/"&gt;Wikka Wakka Wiki trunk&lt;/A&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV class=smallprint&gt;Page was generated in 1.4863 seconds&lt;/DIV&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-4274145771073885806?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/4274145771073885806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=4274145771073885806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/4274145771073885806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/4274145771073885806'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/09/psychtoolbox-wiki-psychtoolboxtutorial_26.html' title=''/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-1574350507669995942</id><published>2008-07-08T13:33:00.000-07:00</published><updated>2008-07-08T13:34:28.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Behavioral Experiment Software Survey Results</title><content type='html'>&lt;div class="graphic_generic_title_textbox_style_default" style="height: 30px; left: 71px; position: absolute; top: 31px; width: 597px; z-index: 1;" id="id1"&gt;             &lt;div&gt;               &lt;div style="width: 972.45px;" class="Normal"&gt;                 &lt;div class="paragraph Summary_Title" style="line-height: 23px; padding-bottom: 0pt; padding-top: 0pt;"&gt;Behavioral Experiment Software Survey Results&lt;/div&gt;               &lt;/div&gt;             &lt;/div&gt;           &lt;/div&gt;           &lt;div style="height: 1px; line-height: 1px;" class="tinyText"&gt; &lt;/div&gt;           &lt;div style="vertical-align: top; margin-left: 71px; margin-top: 85px; position: relative; width: 558px; z-index: 1;" class="graphic_generic_body_textbox_style_default"&gt;             &lt;div&gt;               &lt;div style="padding: 4px;" class="Normal"&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; padding-top: 0pt; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;a href="http://lpl.ucsd.edu/LabPage/Lab_Blog/B1A6A7D2-0069-41E3-89E9-B3683FEEC758_files/software-survey-results.xls" title="B1A6A7D2-0069-41E3-89E9-B3683FEEC758_files/software-survey-results.xls" style="line-height: 20px; opacity: 1;"&gt;&lt;software&gt;&lt;/a&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Hi everyone,&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;The results of the software survey are in.  We had 187 responses, but one was unanalyzable (the respondent did not specify a software package).  Thanks everyone for your responses; I hope these results prove useful.&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Here's a one-paragraph summary of the survey results; details below:  E-Prime is the most popular package of those surveyed, but the majority of folks are using either E-Prime, DMDX, or some flavor of PsyScope.  E-Prime, PsyScope, SuperLab, and ERTS are all rated as easy to build experiments with, and about equally so.  DMDX and NESU are seen as slightly harder.  Presentation and MatLab are notably the hardest of the commonly used packages.  SuperLab was seen as easiest for novices.  E-Prime and PsyScope were rated a shade harder for novices, and then from ERTS to SuperLab Pro to DMDX to NESU, novice-ease ratings dropped.  Presentation and MatLab were both seen as notably difficult for novices.  DMDX nets the highest satisfaction rating, with PsyScope X and E-Prime a smidge lower.  MatLab, SuperLab, and Presentation rank below that, ending with NESU, PsyScope classic, and SuperLab Pro.  PsyScope X has the highest "sticking with" rate, and E-Prime, SuperLab, MatLab, and DMDX all have 50%+ "sticking with" ratings.  People are running away from PsyScope classic in droves, probably because the classic Mac OS is very quickly approaching end-of-life.  E-Prime, both flavors of PsyScope, and DMDX are highly recommended.  MatLab is also well recommended.  Then it drops noticeably to Presentation, SuperLab, ERTS, and finally SuperLab Pro and NESU.  A summary of two open-ended questions is also included below.&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;*&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Details:&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Of the 186 valid responses, the most commonly used software package ended up being E-Prime (57 responses, 30.6%).  Here's the ranking of software packages, listing number of respondents and percentage for each:&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;1. E-Prime: 57, 30.6%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;2. DMDX: 32, 17.2%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;3. PsyScope Classic: 18, 9.7%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;4. Presentation: 12, 6.5%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;5. PsyScope X: 11, 5.9%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;6. NESU: 8, 4.3%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;7. ERTS: 6, 3.2%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;8. SuperLab: 5, 2.7%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;9. MatLab: 5, 2.7%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;10. SuperLab Pro: 4, 2.2%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;11. Linger: 4, 2.2%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;12. MEL: 3, 1.6%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;13. Experiment Builder: 3, 1.6%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;14. EyeTrack: 2, 1.1%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;The following packages had 1 response each: Authorware, C programming, Delphi Borland, DirectRT, ExBuilder, Habit, Inquisit, MacroMedia Director, PHPsurveyor, PCexpt, RSVP, WWStim, WebExp, iMovie, tscope, vision analyzer/recorder.&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Bob Slevc worked to dig up links for many of these software packages.  I'll put the links below the signature line.&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Note that PsyScope classic and PsyScope X could be combined to have a total response count of 29 or 15.6%, which would keep it in third place behind E-Prime and DMDX.  SuperLab and SuperLab Pro (which I assume are distinct) could similarly be combined for 9 responses (4.8%), which would put it right behind Presentation.  &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;*&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;We asked, "How easy/hard is it for you to build an experiment with your software?" with a 7-point response scale (1 = "very easy" and 7 = "very hard").  Overall, the mean difficulty rating was 3.09 with a standard deviation of 1.43, and a median of 3.  Here are the mean and median build-difficulty ratings for the packages that received at least five responses (combining the above noted PsyScope and SuperLab):&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;ERTS (6): 2.5, 2&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;E-Prime (57): 2.68, 2&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;PsyScope (29): 2.86, 3&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;SuperLab (9): 3.0, 3&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;NESU (8): 3.25, 3&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;DMDX (32): 3.38, 3.5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;MatLab (5): 4.2, 4&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Presentation (12): 4.54, 5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;*&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;We also asked, "How easy/hard is it for a novice to learn how to build experiments with your software?"  The mean difficulty rating was 4.12 with a standard deviation of 1.63, and a median of 4.  Here are the mean and median build-difficulty ratings for the primarily used packages (for this analysis, PsyScope classic and PsyScope X were combined, because their response profiles were similar; SuperLab and SuperLab pro were different, so are reported separately):&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;SuperLab (5): 2.6, 3&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;PsyScope (29): 3.5, 3.5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;E-Prime (57): 3.54, 3&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;ERTS (6): 4.17, 4.5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;SuperLab Pro (4): 4.25, 4.5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;DMDX (32): 4.88, 5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;NESU (8): 5, 5.5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Presentation (12): 5.64, 6&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;MatLab (5): 6, 6&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;*&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;We then asked, "How satisfied are you with your current software?" with "1" meaning "Completely dissatisfied" and "7" meaning "Completely Satisfied."  The mean satisfaction rating was 4.59 with a standard deviation of 1.43, and a median of 5.  Here are the mean and median ratings by package:&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;DMDX (32): 5.09, 5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;PsyScope X (11): 4.91, 5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;E-Prime (57): 4.77, 5&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;MatLab (5): 4.4, 4&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;SuperLab (5): 4.2, 4&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Presentation (12): 4.09, 4&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;NESU (8): 3.88, 4&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;PsyScope classic (18): 3.82, 4&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;SuperLab Pro (4): 3, 3&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;*&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Two more quantitative questions.  First, we asked "Are you sticking with your current software for the foreseeable future, or are you looking to change setups?"  25 respondents responded with "Don't Know," 103 with "Sticking with my current software for the foreseeable future," and 44 with "looking to change."  Here's the breakdown by package, reporting percentages of those sticking with their package and those looking to change (sorted by sticking percentage):&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;PsyScope X (10): 90%, 10%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;E-Prime (52): 71.1%, 9.6%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;SuperLab (5): 60%, 40%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;MatLab (5): 60%, 40%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;DMDX (30): 53%, 20%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Presentation (11): 45.4%, 36.4%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;ERTS (5): 40.0%, 60%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;PsyScope classic (16): 37.5%, 62.5%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;NESU (8): 12.5%, 62.5%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;SuperLab Pro (4): 0%, 50%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;*&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Finally, we asked "Would you recommend your current software?"  138 people said "yes" and 32 said "no."  Here's the breakdown of percent "yes" responses by package:&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;E-Prime (50): 92%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;PsyScope X (10): 90%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;PsyScope classic (16): 87.5%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;DMDX (30): 86.7%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;MatLab (5): 80%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Presentation (12): 63.6%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;SuperLab (5): 60%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;ERTS (5): 60%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;SuperLab Pro (4): 50%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;NESU (8): 50%&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;*&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;We also asked two complementary open-ended questions that aren't easy to summarize.  One was, "What do you like about your current software?  What are its strengths? What does it do well?" and the other was, "What do you not like about your current software?  What are its weaknesses?  What does it not do well (or at all)?"  Considering the big hitters (E-Prime, DMDX, and PsyScope), my general impression of the flavor of the comments were:&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;E-Prime:  Easy to learn, good support, user friendly, etc.  But, some consider it expensive, thought it inflexible, and are worried about precision of timing.&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;DMDX:  It's free, powerful, good timing, good user-support group, and good author support.  Weaknesses were mostly regarding lack of intuitiveness and steep learning curve.&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;PsyScope:  It's free, user-friendly, timing is accurate.  But it can be buggy.  PsyScope classic users are worried about using a legacy system.  PsyScope X users worry about the transition to Intel-based Macs, but with some optimism.&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;*&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;The Excel file with everyone's responses is available on this page:  &lt;/span&gt;&lt;a href="http://lpl.ucsd.edu/LabPage/Lab_Blog/B1A6A7D2-0069-41E3-89E9-B3683FEEC758.html" title="" style="line-height: 20px; opacity: 1;"&gt;&lt;this&gt;&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Again, thanks for participating.  We were thrilled to see that we actually had 187 people respond!&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Best,&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Vic Ferreira&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Jeremy Boyd&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Jeff Elman&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Robert Buffington&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;Bob Slevc&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;DMDX: &lt;/span&gt;&lt;a href="http://www.u.arizona.edu/%7Ekforster/dmdx/dmdx.htm" title="http://www.u.arizona.edu/~kforster/dmdx/dmdx.htm" style="line-height: 20px; opacity: 1;"&gt;http://www.u.arizona.edu/~kforster/dmdx/dmdx.htm&lt;/a&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;E-Prime: &lt;/span&gt;&lt;a href="http://www.pstnet.com/products/e-prime/" title="http://www.pstnet.com/products/e-prime/" style="line-height: 20px; opacity: 1;"&gt;http://www.pstnet.com/products/e-prime/&lt;/a&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;ERTS: &lt;/span&gt;&lt;a href="http://www.erts.de/" title="http://www.erts.de" style="line-height: 20px; opacity: 1;"&gt;http://www.erts.de&lt;/a&gt;&lt;span&gt;/&lt;/span&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;Experiment Builder: &lt;/span&gt;&lt;a href="http://www.eyelinkinfo.com/optns_eb.php" title="http://www.eyelinkinfo.com/optns_eb.php" style="line-height: 20px; opacity: 1;"&gt;http://www.eyelinkinfo.com/optns_eb.php&lt;/a&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;Linger: &lt;/span&gt;&lt;a href="http://tedlab.mit.edu/%7Edr/Linger/" title="http://tedlab.mit.edu/~dr/Linger/" style="line-height: 20px; opacity: 1;"&gt;http://tedlab.mit.edu/~dr/Linger/&lt;/a&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;MatLab: &lt;/span&gt;&lt;a href="http://www.mathworks.com/" title="http://www.mathworks.com" style="line-height: 20px; opacity: 1;"&gt;http://www.mathworks.com&lt;/a&gt;&lt;span&gt;/&lt;/span&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;MEL: (Note that MEL is the predecessor to E-Prime)&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;NESU: &lt;/span&gt;&lt;a href="http://www.mpi.nl/world/tg/experiments/nesu.html" title="http://www.mpi.nl/world/tg/experiments/nesu.html" style="line-height: 20px; opacity: 1;"&gt;http://www.mpi.nl/world/tg/experiments/nesu.html&lt;/a&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;Presentation: &lt;/span&gt;&lt;a href="http://www.neuro-bs.com/" title="http://www.neuro-bs.com" style="line-height: 20px; opacity: 1;"&gt;http://www.neuro-bs.com&lt;/a&gt;&lt;span&gt;/&lt;/span&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;PsyScope Classic: &lt;/span&gt;&lt;a href="http://psyscope.psy.cmu.edu/" title="http://psyscope.psy.cmu.edu" style="line-height: 20px; opacity: 1;"&gt;http://psyscope.psy.cmu.edu&lt;/a&gt;&lt;span&gt;/&lt;/span&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;PsyScope X: &lt;/span&gt;&lt;a href="http://psy.ck.sissa.it/" title="http://psy.ck.sissa.it" style="line-height: 20px; opacity: 1;"&gt;http://psy.ck.sissa.it&lt;/a&gt;&lt;span&gt;/&lt;/span&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;span&gt;SuperLab (Pro): &lt;/span&gt;&lt;a href="http://www.superlab.com/" title="http://www.superlab.com" style="line-height: 20px; opacity: 1;"&gt;http://www.superlab.com&lt;/a&gt;&lt;span&gt;/&lt;/span&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;UPDATE:  Other relevant links (Thanks to Roberto Heredia):&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;a href="http://www.tamiu.edu/%7Erheredia/materials.html" title="http://www.tamiu.edu/~rheredia/materials.html" style="line-height: 20px; opacity: 1;"&gt;http://www.tamiu.edu/~rheredia/materials.html&lt;/a&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px;"&gt;&lt;a href="http://www.tamiu.edu/%7Erheredia/softwareresources.html" title="http://www.tamiu.edu/~rheredia/softwareresources.html" style="line-height: 20px; opacity: 1;"&gt;http://www.tamiu.edu/~rheredia/softwareresources.html&lt;/a&gt;&lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; text-decoration: none;"&gt; &lt;/div&gt;                 &lt;div class="paragraph Body" style="line-height: 20px; padding-bottom: 0pt;"&gt;&lt;span&gt;UPDATE 2:  &lt;/span&gt;&lt;a href="http://www.lifesci.sussex.ac.uk/home/Alan_Garnham/welcome.html" title="http://www.lifesci.sussex.ac.uk/home/Alan_Garnham/welcome.html"&gt;Alan Garnham&lt;/a&gt;&lt;span&gt; suggested to me that SuperLab and SuperLab Pro are not distinct products (though I swear I have a memory of their being something called ‘SuperLab’ without ‘SuperLab Pro’!).  If I get a chance, I’ll combine the two in the above analyses. &lt;/span&gt;&lt;/div&gt;               &lt;/div&gt;             &lt;/div&gt;          &lt;br /&gt;source:&lt;br /&gt;http://lpl.ucsd.edu/LabPage/Lab_Blog/B1A6A7D2-0069-41E3-89E9-B3683FEEC758.html&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-1574350507669995942?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/1574350507669995942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=1574350507669995942' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/1574350507669995942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/1574350507669995942'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/07/behavioral-experiment-software-survey.html' title='Behavioral Experiment Software Survey Results'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-6111746408681984400</id><published>2008-07-04T11:24:00.000-07:00</published><updated>2008-07-04T11:25:50.880-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>To Err Is Human</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 12pt;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center; line-height: 200%;" align="center"&gt;&lt;b style=""&gt;&lt;span style="font-size: 40pt; line-height: 200%;" lang="EN-US"&gt;To Err Is Human&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center; line-height: 200%;" align="center"&gt;&lt;b style=""&gt;&lt;span style="font-size: 20pt; line-height: 200%;" lang="EN-US"&gt;By He, Jibo&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;Everyone knows the old saying, “&lt;b style=""&gt;To err is human&lt;/b&gt;”. It is unavoidable for human being to make errors in decision making, because of our limitation of time, physical, cognitive, emotional and other resources. These limitations fail all our effortful endeavors to make perfect rational decision, and maximize our expected value. The same limitations harass the stock brokers in the Wall Street (Blodget, 2004), and doctors (Groopman, 20007). No matter how smart they are and how many tools they are armed with, they cannot escape from making bad decisions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;Everyone knows! Wait! But maybe not for classical economists. Unlike ordinary human, such as us, the economists are equipped with the most advanced mathematical tools and logic ability. They assume that human are &lt;i style=""&gt;Homo economicus&lt;/i&gt;, with unlimited resources in time, physical and cognitive ability, as well as stable preferences (Cassidy, 2006). The human in economists’ eyes makes rational decisions, and never err.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;Economists are so smart and almighty that they have successfully attracted a great amount of followers, amongst of which include the stock brokers at Wall Street, and the educators of the doctors. They all pursue the dreams of rational decisions, which the economists depict for them. So the brokers developed all kinds of complicated tools and mathematics index, for example, NASDAQ index, K-line etc. But none of them successfully predicted the disastrous depression in 1929. And it is worthy to note that the economists, the dream designers of perfect decision, have successfully predicted the &lt;b style=""&gt;10&lt;/b&gt; economic depressions for the &lt;b style=""&gt;only 5&lt;/b&gt; actual depressions in the past 30 years. Under the illusions of perfect decision makers, the educators of doctors are also temped to believe that the candidate doctors are born to know how to apply their knowledge, and they would be perfect decision makers as long as they are taught the practical aspects of patient care. Techniques on how to make decisions are ignored and seldom taught in medical schools (Groopman, 2007). However, according to the survey of Croskerry, a physician at Dartmouth General Hospital, the perfect decision makers assumed by the economists actually misdiagnose fifteen percent, or even more, of the patients.&lt;span style=""&gt;  &lt;/span&gt;And most of the misdiagnoses are the results of errors in thinking.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;The consistent failures of human in decision making call doubt about the rational approach to decision making by economists. Kahneman and Tversky developed the Prospect Theory in 1979, which marked the trend of naturalistic approaches to decision making. And some other behavioral economists, neuroeconomist adopted empirical research methods to investigate into human decision making process. These well-grounded researches call on our attentions to the limitations of human, and doubted on the unrealistic assumptions of &lt;i style=""&gt;Homo economicus &lt;/i&gt;with unlimited abilities and resources by classical economists. Human, as decision makers, are constraint by their limited physical, cognitive resources, unstable preferences and emotions, and the impossibility to make concise prediction of risk. Rather than perfect rationality in economics, human decision making is bounded rationality as a result of all kinds of limitations. We regret loss, so we are loss aversion; we seeks to build our self-esteem by all means, so we shows confirmatory bias in decision (Blodget, 2004); we have limited memory ability, so we rely on representative and availability heuristics in decision making. Etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;To err is human. Economists’ escape from accepting the facts that we are limited in resources does no good to help reduce human error in decision making. We have to face up to our constraints in decision making, and get aware of and trained to avoid these limitations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center; line-height: 200%;" align="center"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;REFERENCES&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;Cassidy, J. (2006). Mind games: what neuroeconomics tells us about money and the brain. &lt;i style=""&gt;The New Yorker.&lt;/i&gt; Source:&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.newyorker.com/archive/2006/09/18/060918fa_fact"&gt;http://www.newyorker.com/archive/2006/09/18/060918fa_fact&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;Groopman, J. (2007). What’s the trouble? How doctors think. &lt;i style=""&gt;The New Yorker.&lt;/i&gt; Source: &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.newyorker.com/reporting/2007/01/29/070129fa_fact_groopman" target="_blank"&gt;http://www.newyorker.com/reporting/2007/01/29/070129fa_fact_groopman&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;Blodget H. (2004). The greatest Wall Street danger of all: you. &lt;i style=""&gt;Slate.&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;Source:&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;a href="http://slate.msn.com/id/2110977/" target="_blank"&gt;http://slate.msn.com/id/2110977/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-size: 12pt; line-height: 200%;" lang="EN-US"&gt;Kahneman, D. and Tversky, A. (1979). Prospect theory: An analysis of decision under risk. &lt;i&gt;Econometrica&lt;/i&gt;, 47(2):263-292.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-6111746408681984400?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/6111746408681984400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=6111746408681984400' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/6111746408681984400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/6111746408681984400'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/07/to-err-is-human.html' title='To Err Is Human'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-8758599442905158125</id><published>2008-07-02T15:09:00.000-07:00</published><updated>2008-07-02T15:10:21.335-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vision'/><title type='text'>Does Short-Term Memory Load Influence Visual Search? An Oculomotor Study</title><content type='html'>&lt;table border="0" cellpadding="0" cellspacing="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th colspan="2"&gt;ABSTRACT SUBMISSION DETAILS&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt;  &lt;td&gt;Type of Submission:&lt;/td&gt;  &lt;td&gt;Poster&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;  &lt;td&gt;Submission Date:&lt;/td&gt;  &lt;td&gt;January 31, 2008&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;  &lt;td&gt;Review Status:&lt;/td&gt;  &lt;td&gt;PENDING&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td colspan="2"&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;  &lt;td&gt;Title:&lt;/td&gt;  &lt;td&gt;Does Short-Term Memory Load Influence Visual Search? An Oculomotor Study&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;  &lt;td&gt;Subject Area:&lt;/td&gt;  &lt;td&gt;Cognitive&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;Keyword:&lt;/td&gt;  &lt;td&gt;   Attention  &lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt;  &lt;td valign="top"&gt;Presenters:&lt;/td&gt;  &lt;td&gt;   Jibo He, University of Illinois, Urbana/Champaign&lt;br /&gt;   &lt;br /&gt;   Jason S McCarley, University of Illinois at Urbana-Champaign&lt;br /&gt;   &lt;br /&gt;     &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td colspan="2"&gt;Abstract:&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td colspan="2"&gt;A dual-task experiment examined the influence of STM load on visual processing and saccade targeting in visual search. Increased load altered saccade amplitudes, but did not appear to slow visual search nor to compromise foveal stimulus analysis. Results imply independence between STM maintenance and visual search. &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td colspan="2"&gt;Supporting Summary:&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td colspan="2"&gt;INTRODUCTION: A dual-task experiment examined the influence of short-term memory (STM) load on visual processing and saccade targeting in visual search. Performance of visual search under high and low memory load was compared through analysis of oculomotor data. The search task was designed to allow insight into the quality of the participants’ foveal analysis and saccade control. METHOD: Participants performed a visual search task while concurrently maintaining either a low or high memory load. The search task required participants to locate a circle (O) among a set of 35 gapped-circle (C) distractors. The memory task required participants to hold either a single alphanumeric character or six characters in STM. Each trial began with a fixation cross, followed by a memory set of either one character (low memory load) or six characters (high memory load). The visual search task was classified as coded or uncoded. In the coded condition, the Cs were oriented to face in the direction of the target, such that the participant could use distractors to guide search toward the target’s location. In the uncoded condition, distractors were oriented randomly. Comparison of performance in the coded and uncoded conditions thus provides a measure of the participants’ ability to utilize foveal analysis of distractor orientation to facilitate saccade targeting during search (Hooge &amp;amp; Erkelens, 1998). Memory performance was measured with a recognition test after the visual search each trial. RESULTS: Visual search was significantly more efficient under coded than uncoded conditions, as evident in changes in response times and saccade frequencies. Mathematical analysis (Wagenmakers et al., 2007) of saccade latency and accuracy data also revealed an increase in information accumulation rate for saccade target selection under coded search conditions. High memory load increased first-saccade latency each trial and led to larger saccade amplitudes, but otherwise did not hinder performance. No significant differences in memory recognition or saccade targeting accuracy across the four conditions were found. DISCUSSION: For coded search task, the benefits of cues outweighed the cost of additional cognitive processing of direction of the cues than uncoded search task. Higher STM load did not appear to slow down visual search, nor to compromise participants’ ability to guide search on the basis of distractor analysis. Results imply independence between STM maintenance and visual search.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-8758599442905158125?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/8758599442905158125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=8758599442905158125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/8758599442905158125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/8758599442905158125'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/07/does-short-term-memory-load-influence.html' title='Does Short-Term Memory Load Influence Visual Search? An Oculomotor Study'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-3851309916799481766</id><published>2008-07-01T12:38:00.000-07:00</published><updated>2008-07-01T12:47:02.461-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vision'/><title type='text'>'Lazy eye' treatment shows promise in adults</title><content type='html'>&lt;h1 class="title"&gt;'Lazy eye' treatment shows promise in adults&lt;/h1&gt; &lt;h2 class="subtitle"&gt;New data, based on a finding first reported in 2006, suggest a simple and effective therapy for amblyopia. Clinical use will depend on optometry community&lt;/h2&gt;source: http://www.eurekalert.org/pub_releases/2008-03/uosc-et022708.php&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;New evidence from a laboratory study and a pilot clinical trial confirms the promise of a simple treatment for amblyopia, or “lazy eye,” according to researchers from the U.S. and China.&lt;/p&gt;  &lt;p&gt;The treatment was effective on 20-year-old subjects. Amblyopia was considered mostly irreversible after age eight.&lt;/p&gt;  &lt;p&gt;Many amblyopes, especially in developing countries, are diagnosed too late for conventional treatment with an eye patch. The disorder affects about nine million people in the U.S. alone.&lt;/p&gt;  &lt;p&gt;Results from the laboratory study will be published online the week of Mar. 3 in PNAS Early Edition.&lt;/p&gt;  &lt;p&gt;Patients seeking treatment will need to wait for eye doctors to adopt the non-surgical procedure in their clinics, said Zhong-Lin Lu, the University of Southern California neuroscientist who led the research group.&lt;/p&gt;  &lt;p&gt;“I would be very happy to have some clinicians use the procedure to treat patients. It will take some time for them to be convinced,” Lu said.&lt;/p&gt;  &lt;p&gt;“We also have a lot of research to do to make the procedure better.”&lt;/p&gt;  &lt;p&gt;In a pilot clinical trial at a Beijing hospital in 2007, 28 out of 30 patients showed dramatic gains after a 10-day course of treatment, Lu said. &lt;/p&gt;  &lt;p&gt;“After training, they start to use both eyes. Some people got to 20/20. By clinical standards, they’re completely normal. They’re not amblyopes anymore.”&lt;/p&gt;  &lt;p&gt;The gains averaged two to three lines on a standard eye chart. Previous studies by Lu’s group found that the improvement is long-lasting, with 90 percent of vision gain retained after at least a year.&lt;/p&gt;  &lt;p&gt;“This is a brilliant study that addresses a very important issue,” said Dennis Levi, dean of optometry at the University of California, Berkeley. Levi was not involved in the study. &lt;/p&gt;  &lt;p&gt;“The results have important implications for the treatment of amblyopia and possibly other clinical conditions.”&lt;/p&gt;  &lt;p&gt;The PNAS study shows that the benefit of the training protocol – which involves a very simple visual task – goes far beyond the task itself. Amblyopes trained on just one task improved their overall vision, Lu said.&lt;/p&gt;  &lt;p&gt;The improvement was much greater for amblyopes than for normal subjects, Lu added.&lt;/p&gt;  &lt;p&gt;“For amblyopes, the neural wiring is messed up. Any improvement you can give to the system may have much larger impacts on the system than for normals,” he said.&lt;/p&gt;  &lt;p&gt;The Lu group’s findings also have major theoretical implications. The assumption of incurability for amblyopia rested on the notion of “critical period”: that the visual system loses its plasticity and ability to change after a certain age. &lt;/p&gt;  &lt;p&gt;The theory of critical period arose in part from experiments on the visual system of animals by David Hubel and Torsten Wiesel of Harvard Medical School, who shared the 1981 Nobel Prize in Medicine with Roger Sperry of Caltech.&lt;/p&gt;  &lt;p&gt;“This is a challenge to the idea of critical period,” Lu said. “The system is much more plastic than the idea of critical period implies. The fact that we can drastically change people’s vision at age 20 says something.”&lt;/p&gt;  &lt;p&gt;A critical period still exists for certain functions, Lu added, but it might be more limited than previously thought.&lt;/p&gt;  &lt;p&gt;“Amblyopia is a great model to re-examine the notion of critical period,” Lu said.&lt;/p&gt;  &lt;p&gt;The first study by Lu’s group on the plasticity of amblyopic brains was published in the journal Vision Research in 2006 and attracted wide media attention. &lt;/p&gt;  &lt;p&gt;Since then, Lu has received hundreds of emails from adult amblyopes who had assumed they were beyond help.&lt;/p&gt;  &lt;p&gt;Berkeley’s Levi cautioned that the clinical usefulness of perceptual learning, as Lu calls his treatment, remains a “sixty-four thousand dollar question.”&lt;/p&gt;  &lt;p&gt;“It's clear that perceptual learning in a lab setting is effective,” Levi said. “However, ultimately it needs to be adopted by clinicians and that will probably require multi-center clinical trials.”&lt;/p&gt;  &lt;div align="center"&gt;###&lt;/div&gt;  &lt;p&gt;Lu is collecting patients’ names for possible future clinical trials. He can be contacted at &lt;a href="mailto:zhonglin@usc.edu"&gt;zhonglin@usc.edu&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The researchers are also working to develop a home-based treatment program. &lt;/p&gt;  &lt;p&gt;For patients who can travel, the Chinese hospital that hosted the pilot trial may be able to provide treatment. Contact Dr. Lijuan Liu, Beijing Xiehe Hospital, at &lt;a href="mailto:lijuan_l@yahoo.com.cn"&gt;lijuan_l@yahoo.com.cn&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The other members of Lu’s group are Chang-Bing Huang and Yifeng Zhou of the Vision Research Lab at the University of Science and Technology of China, in Hefei, Anhui province (Huang is currently a postdoc in Lu’s lab at USC).&lt;/p&gt;  &lt;p&gt;Funding for the research came from the Chinese National Natural Science Foundation and the U.S. National Eye Institute.&lt;/p&gt;  &lt;b&gt;&lt;p&gt;ABOUT AMBLYOPIA (from PNAS)&lt;/p&gt;&lt;/b&gt;  &lt;p&gt;Amblyopia affects about 3 percent of the population and cannot be rectified with glasses. People with the disorder suffer a range of symptoms: poor vision in one eye, poor depth perception, difficulty seeing three-dimensional objects, and poor motion sensitivity.&lt;/p&gt;  &lt;p&gt;Also known as lazy eye, the disorder is caused by poor transmission of images from the eye to the brain during early childhood, leading to abnormal brain development. Lazy eye is actually a misnomer because in many cases the structure of the eye is normal. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-3851309916799481766?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/3851309916799481766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=3851309916799481766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/3851309916799481766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/3851309916799481766'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/07/lazy-eye-treatment-shows-promise-in.html' title='&apos;Lazy eye&apos; treatment shows promise in adults'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-8792958939277335671</id><published>2008-07-01T12:35:00.001-07:00</published><updated>2008-07-01T12:47:02.462-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vision'/><title type='text'>Rapid visual memory decay in mild cognitive impairment</title><content type='html'>&lt;table border="0" cellpadding="0" cellspacing="3" width="100%"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td class="content-cell"&gt;&lt;div class="section-content"&gt;&lt;p&gt;&lt;strong&gt;Rapid visual memory decay in mild cognitive impairment&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Source: http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547895&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Zhong-Lin Lu &lt;em&gt;et al.&lt;/em&gt; report that the rapid decay of iconic (visual short-term) memory appears to be a general characteristic of mild cognitive impairment, which often precedes the onset of Alzheimer's disease. Iconic memory typically lasts only a fraction of a second before it is either lost or stored in short-term memory, and a link between iconic memory impairment and Alzheimer's disease has been suggested. The authors tested the iconic memory of 23 young adults (average age, 20 years), 11 older adults with mild cognitive impairment (average age, 85 years), and 16 older controls (average age, 82 years). Iconic memory was characterized by using the partial report paradigm with the same visual stimuli parameters in each observation group. The researchers found that mean iconic memory duration was significantly shorter in subjects with mild cognitive impairment (0.07 s), compared with both older (0.30 s) and younger (0.34 s) controls. In a series of conventional neuropsychological tests used to assess cognitive function, the mild cognitive impairment group performed significantly worse than the older control group. In both of these groups, no significant performance differences were observed in visual and task abilities or the ability to transfer items to short-term memory. The authors suggest that testing iconic memory could be used with other measures to aid the diagnosis of Alzheimer's disease.&lt;/p&gt;&lt;p&gt;&lt;em&gt;“Fast decay of iconic memory in observers with mild cognitive impairments” by Zhong-Lin Lu, James Neuse, Stephen Madigan, and Barbara Anne Dosher&lt;/em&gt; (see pages &lt;a href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547847" class="int-reflink"&gt;1797-1802&lt;/a&gt;)&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td class="sidebar-cell" width="145"&gt; &lt;/td&gt;&lt;td class="content-cell"&gt;&lt;div class="section-content"&gt;​                     &lt;div style="border-style: solid; border-color: rgb(153, 153, 153) rgb(153, 153, 153) rgb(170, 170, 170) rgb(170, 170, 170); border-width: 1px; margin: 1em 2em 1em 1em;"&gt;&lt;div style="border-style: solid; border-color: rgb(240, 240, 240) rgb(240, 240, 240) rgb(248, 248, 248) rgb(248, 248, 248); border-width: 3px 3px 1px 1px;"&gt;&lt;a id="fig1" name="fig1"&gt;&lt;/a&gt;&lt;table style="clear: both; width: 100%;" border="0" cellpadding="5" cellspacing="5"&gt;&lt;tbody&gt;&lt;tr align="left" valign="top"&gt;&lt;td align="center" width="100"&gt;&lt;a href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547895&amp;amp;rendertype=figure&amp;amp;id=fig1" class="icon-reflink" onclick="startTarget(this, 'figure', 1024, 800)"&gt;&lt;img src="http://www.pubmedcentral.nih.gov/picrender.fcgi?artid=547895&amp;amp;blobname=zpq0090574900001.gif" class="icon-reflink" alt="Figure 1" title="Figure 1" border="1" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="side-caption" href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547895&amp;amp;rendertype=figure&amp;amp;id=fig1" onclick="startTarget(this, 'figure', 1024, 800)"&gt;&lt;strong&gt;Figure 1&lt;/strong&gt;&lt;/a&gt;&lt;div class="figure-table-caption-in-article"&gt;&lt;span&gt;Native-state conformations of α-synuclein.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-style: solid; border-color: rgb(153, 153, 153) rgb(153, 153, 153) rgb(170, 170, 170) rgb(170, 170, 170); border-width: 1px; margin: 1em 2em 1em 1em;"&gt;&lt;div style="border-style: solid; border-color: rgb(240, 240, 240) rgb(240, 240, 240) rgb(248, 248, 248) rgb(248, 248, 248); border-width: 3px 3px 1px 1px;"&gt;&lt;a id="fig2" name="fig2"&gt;&lt;/a&gt;&lt;table style="clear: both; width: 100%;" border="0" cellpadding="5" cellspacing="5"&gt;&lt;tbody&gt;&lt;tr align="left" valign="top"&gt;&lt;td align="center" width="100"&gt;&lt;a href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547895&amp;amp;rendertype=figure&amp;amp;id=fig2" class="icon-reflink" onclick="startTarget(this, 'figure', 1024, 800)"&gt;&lt;img src="http://www.pubmedcentral.nih.gov/picrender.fcgi?artid=547895&amp;amp;blobname=zpq0090574910001.gif" class="icon-reflink" alt="Figure 2" title="Figure 2" border="1" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="side-caption" href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547895&amp;amp;rendertype=figure&amp;amp;id=fig2" onclick="startTarget(this, 'figure', 1024, 800)"&gt;&lt;strong&gt;Figure 2&lt;/strong&gt;&lt;/a&gt;&lt;div class="figure-table-caption-in-article"&gt;&lt;span&gt;VP branching morphology of ERα&lt;sup&gt;-/-&lt;/sup&gt; mice.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-style: solid; border-color: rgb(153, 153, 153) rgb(153, 153, 153) rgb(170, 170, 170) rgb(170, 170, 170); border-width: 1px; margin: 1em 2em 1em 1em;"&gt;&lt;div style="border-style: solid; border-color: rgb(240, 240, 240) rgb(240, 240, 240) rgb(248, 248, 248) rgb(248, 248, 248); border-width: 3px 3px 1px 1px;"&gt;&lt;a id="fig3" name="fig3"&gt;&lt;/a&gt;&lt;table style="clear: both; width: 100%;" border="0" cellpadding="5" cellspacing="5"&gt;&lt;tbody&gt;&lt;tr align="left" valign="top"&gt;&lt;td align="center" width="100"&gt;&lt;a href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547895&amp;amp;rendertype=figure&amp;amp;id=fig3" class="icon-reflink" onclick="startTarget(this, 'figure', 1024, 800)"&gt;&lt;img src="http://www.pubmedcentral.nih.gov/picrender.fcgi?artid=547895&amp;amp;blobname=zpq0070573050001.gif" class="icon-reflink" alt="Figure 3" title="Figure 3" border="1" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="side-caption" href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547895&amp;amp;rendertype=figure&amp;amp;id=fig3" onclick="startTarget(this, 'figure', 1024, 800)"&gt;&lt;strong&gt;Figure 3&lt;/strong&gt;&lt;/a&gt;&lt;div class="figure-table-caption-in-article"&gt;&lt;span&gt;Mast cell degranulation induced by light chains.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-style: solid; border-color: rgb(153, 153, 153) rgb(153, 153, 153) rgb(170, 170, 170) rgb(170, 170, 170); border-width: 1px; margin: 1em 2em 1em 1em;"&gt;&lt;div style="border-style: solid; border-color: rgb(240, 240, 240) rgb(240, 240, 240) rgb(248, 248, 248) rgb(248, 248, 248); border-width: 3px 3px 1px 1px;"&gt;&lt;a id="fig4" name="fig4"&gt;&lt;/a&gt;&lt;table style="clear: both; width: 100%;" border="0" cellpadding="5" cellspacing="5"&gt;&lt;tbody&gt;&lt;tr align="left" valign="top"&gt;&lt;td align="center" width="100"&gt;&lt;a href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547895&amp;amp;rendertype=figure&amp;amp;id=fig4" class="icon-reflink" onclick="startTarget(this, 'figure', 1024, 800)"&gt;&lt;img src="http://www.pubmedcentral.nih.gov/picrender.fcgi?artid=547895&amp;amp;blobname=zpq0090574930001.gif" class="icon-reflink" alt="Figure 4" title="Figure 4" border="1" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="side-caption" href="http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=547895&amp;amp;rendertype=figure&amp;amp;id=fig4" onclick="startTarget(this, 'figure', 1024, 800)"&gt;&lt;strong&gt;Figure 4&lt;/strong&gt;&lt;/a&gt;&lt;div class="figure-table-caption-in-article"&gt;&lt;span&gt;Cholera phage types.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-8792958939277335671?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/8792958939277335671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=8792958939277335671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/8792958939277335671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/8792958939277335671'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/07/rapid-visual-memory-decay-in-mild.html' title='Rapid visual memory decay in mild cognitive impairment'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-6410769344927788101</id><published>2008-07-01T08:14:00.000-07:00</published><updated>2008-07-01T08:15:09.319-07:00</updated><title type='text'>Mental Chronometry: Subtractive and Additive Factors Method</title><content type='html'>&lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span style="font-size: 14pt; line-height: 115%;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span style="font-size: 16pt; line-height: 115%;" lang="EN-US"&gt;Mental Chronometry: Subtractive and Additive Factors Method&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span style="font-size: 14pt; line-height: 115%;" lang="EN-US"&gt;He, Jibo&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; line-height: 115%;" lang="EN-US"&gt;(Department of Psychology, University of Illinois, Urbana/Champaign, IL, 61801, US)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; line-height: 150%;"&gt;&lt;span style="font-size: 12pt; line-height: 150%;" lang="EN-US"&gt;Reaction time (RT) is one of the best quantitative measures in psychology, which is objective and could be compared easily among diversified tasks. RT is not only a good measure of task performance, but also can be used to probe into the mental process. Mental chronometry uses RT to confirm the existence and quantify the duration of a specific mental process. The widely use of mental chronometry benefits from the methodological breakthroughs, that is, the invention of subtractive and additive factors methods. In this reaction paper to the two materials (Johnson &amp;amp; Proctor, 2004; Wichens, &amp;amp;Holland, 1992), I will briefly summarize the two methods and comment on their usage and relative merits.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; line-height: 150%;"&gt;&lt;span style="font-size: 12pt; line-height: 150%;" lang="EN-US"&gt;Subtractive method measures the duration of mental process by deleting a mental operation entirely from the RT task (Wichens, &amp;amp;Holland, 1992). Subtractive uses go-no-go task paradigm. The duration of a mental operation is the time difference of a go-response and no-go response. However, subtractive method cannot be widely used because of the dependencies of mental process with its proceeding procedures. We can use go-no-go paradigm to measure the duration of a response execution, because the deletion of response execution does not hinder other mental process as it is the end of a RT task. We cannot delete other mental process without disturbing following processes, such as perceptual encoding and response selection. The difficulty in deleting mental process should be one of the reasons why subtractive method is not widely used as the additive factors method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; line-height: 150%;"&gt;&lt;span style="font-size: 12pt; line-height: 150%;" lang="EN-US"&gt;Additive factors method is used to identify the existence of a proposed mental process by manipulating variables only influencing on a specific mental process.&lt;span style=""&gt;  &lt;/span&gt;Additive factors method assumes that mental processes are executed in serial without dependencies and parallel processing. By adding variables to influencing on a target mental process, the experiment manipulation will only change this mental process without disturbing other mental process. &lt;span style=""&gt; &lt;/span&gt;If two manipulations influence two different mental processes, the additive effect on RT should be larger than the condition that the two manipulations operate on the same mental processes. If two operations operate on the same mental process, it will cause interactive effect on the total RT. If two operations operate on different mental processes, it will cause additive effect on the total RT.&lt;span style=""&gt;  &lt;/span&gt;Therefore, if the time of the interactive RT task and the additive RT task differs, a specific mental process should exist, and the difference of the time for interactive RT and additive RT is the duration of this mental process. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; line-height: 150%;"&gt;&lt;span style="font-size: 12pt; line-height: 150%;" lang="EN-US"&gt;However, despite of the success of the subtractive and additive factors methods, both of the two methods can not estimate the duration of mental process accurately enough, because the basic assumptions are not held for every RT tasks. &lt;span style=""&gt; &lt;/span&gt;Both of the two methods assume that mental processes are executed in serial. We can measure the time for a specific mental process by subtracting or adding/changing a mental process. However, the assumption of serial processing is not always true. Many of our mental operations are processed in parallel benefiting from the functions are allocated to independent parts of the brain or modalities of our organs. For example, we could speak while listen, smile while think etc. The estimation of RT based on the serial assumption of mental processes should over estimate the total RT for a task since some of the mental processes are executed in parallel. Another limitation of the subtractive and additive factors methods is that they assume the independence of different mental processes. That is, we can influence on only a specific mental process without disturbing other mental processes. However, actually, this assumption does not hold. The firing of a mental process usually depends on its proceeding process. For instance, we cannot carry out the process of response selection without perceptual encoding first. Therefore, if we manipulate on the stage of perceptual encoding, we do not change the duration of perceptual encoding only, we are likely to change the following response selection too. The failure of perceptual encoding will cause us fail to come up with relevant response too, which will definitely lengthen the duration of response selection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; line-height: 150%;"&gt;&lt;span style="font-size: 12pt; line-height: 150%;" lang="EN-US"&gt;To sum up, the invention of subtractive and additive factors methods contribute to mental chronometry, which can identify a mental process and measure its duration. But we should also be aware of its limitation in assuming serial processing and independent of different mental processes. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span lang="EN-US"&gt;REFERENCES&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; text-indent: -36pt; line-height: 150%;"&gt;&lt;span style="font-size: 12pt; line-height: 150%;" lang="EN-US"&gt;Johnson, Addie &amp;amp; Robert W. Proctor. "Information Processing and the Study of Attention (excerpt)." Attention: theory and practice. Sage, 2004. 32-37.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; text-indent: -36pt; line-height: 150%;"&gt;&lt;span style="font-size: 12pt; line-height: 150%;" lang="EN-US"&gt;Wickens, C.D., Hollands, J. G. (1992). Engineering Psychology and Human Performance (2&lt;sup&gt;nd&lt;/sup&gt; Edition). Published by Harper Collins. Pages: 335-339.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; text-indent: -36pt; line-height: 150%;"&gt;&lt;span style="font-size: 12pt; line-height: 150%;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-6410769344927788101?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/6410769344927788101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=6410769344927788101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/6410769344927788101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/6410769344927788101'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/07/mental-chronometry-subtractive-and.html' title='Mental Chronometry: Subtractive and Additive Factors Method'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-143782415216664535</id><published>2008-07-01T08:12:00.000-07:00</published><updated>2008-07-01T12:47:33.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Human Factors/Ergonomics: Using Psychology to Make a Better and Safer World</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="Picture_x0020_1" spid="_x0000_i1025" type="#_x0000_t75" alt="http://www.psichi.org/images/clear.gif" style="'width:15pt;height:.75pt;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.png" title="clear"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image002.gif" alt="http://www.psichi.org/images/clear.gif" shapes="Picture_x0020_1" height="1" width="20" /&gt;&lt;!--[endif]--&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="Picture_x0020_2" spid="_x0000_i1026" type="#_x0000_t75" alt="http://www.psichi.org/images/clear.gif" style="'width:.75pt;height:11.25pt;visibility:visible'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.png" title="clear"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image003.gif" alt="http://www.psichi.org/images/clear.gif" shapes="Picture_x0020_2" height="15" width="1" /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="width: 100%;" border="0" cellpadding="0" cellspacing="0" width="100%"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="padding: 0cm;" valign="top"&gt;   &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Human Factors/Ergonomics: Using Psychology to Make a   Better and Safer World&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;br /&gt;  by &lt;a href="http://www.psichi.org/pubs/search.asp?searchString=Michael+S%2E+Wogalter&amp;amp;auth=yes"&gt;&lt;span style="color: blue;"&gt;Michael S. Wogalter&lt;/span&gt;&lt;/a&gt; and Wendy A. Rogers - North   Carolina State University, Georgia Institute of Technology&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0cm;" valign="top"&gt;   &lt;p class="MsoNormal" style="text-align: right;" align="right"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;a href="http://www.psichi.org/pubs/search.asp?category1=8"&gt;&lt;span style="color: blue;"&gt;Fields of Psychology&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;What is Human Factors/Ergonomics (HF/E), and why does the field have two names? The field of HF/E is the scientific discipline that attempts to find the best ways to design products, equipment, and systems so that people are maximally productive, satisfied, and safe. Historically, the term human factors has been used in the United States, and the term ergonomics has been used in Europe. Other terms used to describe the field are engineering psychology and applied experimental psychology. Whatever the name, HF/E is the science that brings together psychology and engineering design.&lt;br /&gt;      The field of HF/E is multidisciplinary and benefits from the input of experts from domains such as psychology, engineering, computer science, biomechanics, medicine, and others. &lt;/span&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="Picture_x0020_2" spid="_x0000_s1027" type="#_x0000_t75" alt="http://www.psichi.org/images/site_pages/3_1_wogalter_1.jpg" style="'position:absolute;margin-left:119pt;margin-top:0;width:159pt;height:138pt;" allowoverlap="f"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image004.jpg" title="3_1_wogalter_1"&gt;  &lt;w:wrap type="square" anchory="line"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image005.jpg" alt="http://www.psichi.org/images/site_pages/3_1_wogalter_1.jpg" shapes="Picture_x0020_2" align="right" height="184" vspace="3" width="212" /&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Frequently, the HF/E professional plays the role of mediator between divergent interests advocating for the human point of view in the design of products, equipment, and systems by championing designs that make maximal use of the magnificent abilities that people possess and limiting the use of tasks where people could make errors.&lt;br /&gt;      Early contributions to the establishment of HF/E included the analysis of time and motion of people doing work, and determining human capabilities and limitations in relation to job demands. Most people credit the beginning of the field with the military during World War II. Pilots were flying their airplanes into the ground, and eventually psychologists were called in to find out why. We'd call it "human error" today, and part of the reason for the aircraft crashes was the lack of standardization between different aircraft models. The growing complexity of military hardware during this time period was revealing for the first time in history that even highly selected individuals who were given extensive training could not do the tasks that they needed to do. Pilots were not able to control their aircraft under stressful emergencies. The machines outstripped people's capabilities to use them. Investigations revealed that pilots had certain expectations of how things should work (for example, the location of the landing gear control and how to activate it), and these were frequently violated by aircraft designers (who frequently knew very little about people's abilities and limitations). Before WWII, it was assumed that people could eventually learn whatever they were given if they were trained properly. Since WWII, the field has blossomed as is evident from the examples provided in the next section.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Examples of Human Factors/Ergonomics Applications&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;      Most people, if they even know the term ergonomics, might recognize it as dealing with chairs or possibly automotive displays. While the design of chairs and automobiles is within the purview of HF/E, the field is much broader than that. In fact, many HF/E professionals believe that nearly all aspects of daily activities are within the domain of HF/E. The field deals with the interface between people and things, whether it be a dial on a car dashboard or a control on a stove top. The fundamental philosophy of HF/E is that all products, equipment, and systems are ultimately made for people and should reflect the goals of user satisfaction, safety, and usability. &lt;a href="http://www.psichi.org/images/site_pages/wogalter_table1.jpg"&gt;&lt;span style="color: blue;"&gt;Table 1&lt;/span&gt;&lt;/a&gt; lists some examples of the type of issues on which HF/E specialists focus.&lt;br /&gt;      Two specific examples might serve to illustrate HF/E considerations. The first is that as commonplace as automated teller machines (ATM) have become, many older adults do not use them even though they could benefit from their convenience (see &lt;a href="http://www.psichi.org/images/site_pages/3_1_wogalter_5.jpg"&gt;&lt;span style="color: blue;"&gt;Figure 1&lt;/span&gt;&lt;/a&gt;). The goal of an HF/E specialist would be to ensure that the design of the machine was easy to use (including the design of the buttons, the wording, the spatial layout and the sequencing of the displays, etc.). Moreover, an HF/E person might suggest employing an outreach training program to assist first-time users. The ultimate HF/E solution would be, however, to make the technology so obvious that training is not necessary. Many people can't program a VCR. You might know a statistics program that could be made easier to use and understand. These are the sort of systems that could benefit from HF/E considerations.&lt;br /&gt;      The second example concerns pictorial symbols. Increasingly, symbols are being used to convey concepts to people who do not understand the primary language of the locale, and this is becoming increasingly important with people and companies involved with international travel and trade. In &lt;a href="http://www.psichi.org/images/site_pages/3_1_wogalter_6.jpg"&gt;&lt;span style="color: blue;"&gt;Figure 2&lt;/span&gt;&lt;/a&gt;, the pictorial on the left is from an actual sign on automatic doors like you might see at hospitals and airports. What does it mean? The slash obscures a critical feature of the underlying symbol. The pictorial could be interpreted as "Do not stand" or the opposite, "Do not walk." The interpretation the door manufacturer wanted to convey is the first one, because the doors sometimes close unexpectedly. Can you see that the pictorial symbol could be interpreted as the opposite of its intended meaning? The alternative interpretation was apparently missed by the designer. This is called a critical confusion because the meaning can create a hazard. Fortunately, most people probably do not have the chance to misinterpret this symbol. This is because whenever a person walks up to the door, the doors slide to the side, out of the way. The problem is (a) that the sensors sometimes do not pick up people standing at the threshold, and (b) that these people haven't seen the sign. People have been knocked to the ground by automatic doors that have closed unexpectedly, and for some fragile individuals that event has produced injury. An HF/E analyst would first want to "design out" the hazard (i.e., so it can't close on anyone) using, for example, better sensors and more reliable and better designed components and systems. If you can't design out the hazard, then at least you ought to guard against the hazard contacting and injuring people. When warnings are used, they ought to be designed so target audiences grasp the intended message quickly and readily with little time and effort.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Careers in HF/E&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;      There are a wide range of opportunities in the field of HF/E:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;-- aerospace systems&lt;br /&gt;-- accident analysis&lt;br /&gt;-- computer software and hardware design&lt;br /&gt;-- communications technology&lt;br /&gt;-- educational technology&lt;br /&gt;-- forensic psychology&lt;br /&gt;-- government research laboratories&lt;br /&gt;   (Air Force, Army, Navy, NASA)&lt;br /&gt;-- graphics and information design&lt;br /&gt;-- health and medical technology design&lt;br /&gt;-- systems management&lt;br /&gt;-- training development&lt;br /&gt;-- university faculty&lt;br /&gt;-- usability analysis&lt;br /&gt;-- virtual reality&lt;br /&gt;-- workplace design&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;      HF/E is an area in which one does not necessarily need a PhD or even a master's degree to work in the field (although most human factors psychologists with bachelor's degrees have had some relevant graduate school experience). A recent salary survey of HFES members (Lovvoll, 1997)--using data from only those people reporting that their last degree was from a psychology department--shows that a decent living may be earned at all education levels, although it must be noted that the totals cut across all years of experience (see &lt;a href="http://www.psichi.org/images/site_pages/wogalter_table2.jpg"&gt;&lt;span style="color: blue;"&gt;Table 2&lt;/span&gt;&lt;/a&gt;).&lt;br /&gt;      Another method of assessing salaries in the field is to group the job categories as shown in &lt;a href="http://www.psichi.org/images/site_pages/wogalter_table3.jpg"&gt;&lt;span style="color: blue;"&gt;Table 3&lt;/span&gt;&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="Picture_x0020_3" spid="_x0000_i1027" type="#_x0000_t75" alt="http://www.psichi.org/images/site_pages/3_1_wogalter_4.jpg" style="'width:336pt;height:48.75pt;visibility:visible'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image006.jpg" title="3_1_wogalter_4"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image007.jpg" alt="http://www.psichi.org/images/site_pages/3_1_wogalter_4.jpg" shapes="Picture_x0020_3" border="0" height="65" width="448" /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Learning More About Human Factors/Ergonomics&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;      Many students have not heard of the field of HF/E, in part because there is often not a course in the curriculum, it is usually not covered in other courses, and many psychology professors do not know enough about it to inform their students (Martin &amp;amp; Wogalter, 1997). However, there are several organizations that encourage student participation and membership.&lt;br /&gt;      &lt;b&gt;American Psychological Association (APA)&lt;/b&gt;. Division 21 of APA is the Division of Applied Experimental and Engineering Psychology. For more information about becoming a student member of the division, contact Cathy Gaddy at &lt;a href="mailto:cgaddy@aaas.org"&gt;&lt;span style="color: blue;"&gt;cgaddy@aaas.org&lt;/span&gt;&lt;/a&gt;. You may also access information about APA's Division 21 (Applied Experimental and Engineering Psychology) on the Internet: &lt;a href="http://www.apa.org/about/division.html#d21"&gt;&lt;span style="color: blue;"&gt;http://www.apa.org/about/division.html#d21&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;      &lt;b&gt;Human Factors and Ergonomics Society (HFES)&lt;/b&gt;. HFES is the largest U.S. organization in the field with approximately 5,000 members. Nearly half of the members are psychologists, with the other members coming from fields such as engineering, computer science, system design, and others. For more information about becoming a student member of HFES, contact Diane de Mailly at &lt;a href="mailto:hfesdm@aol.com"&gt;&lt;span style="color: blue;"&gt;hfesdm@aol.com&lt;/span&gt;&lt;/a&gt; or call (310) 394-1811. The HFES home page may be found at &lt;a href="http://www.hfes.org/"&gt;&lt;span style="color: blue;"&gt;http://www.hfes.org&lt;/span&gt;&lt;/a&gt;. From this site you can download the complete listing of HF/E graduate programs in the U.S. and Canada. They also have a year-round job placement service.&lt;br /&gt;      Another way to learn more about the field of HF/E is to head for the library and browse through a textbook on the topic. You will surely be amazed by the range of topics covered. Some of the standard textbooks in the field are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="text-align: left;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Proctor, R.      W., &amp;amp; Van Zandt, T. (1994). &lt;i&gt;Human factors in simple and complex      systems&lt;/i&gt;. Boston: Allyn and Bacon. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: left;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Salvendy, G.      (1997). &lt;i&gt;Handbook of human factors and ergonomics&lt;/i&gt;. New York: Wiley      and Sons. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: left;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Sanders, M.      S., &amp;amp; McCormick, E. J. (1993). &lt;i&gt;Human factors in engineering and      design&lt;/i&gt; (7th ed.). New York: McGraw-Hill. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: left;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Wickens, C.      D. (1992). &lt;i&gt;Engineering psychology and human performance&lt;/i&gt;. New York:      HarperCollins. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;      The field of HF/E is exciting, challenging, and important. Specializing in this field will enable you to get involved in the development of the future as well as to help individuals interact safely and effectively with today's technology. Although things will, undoubtedly, get more complex, potentially they can be made easier to use, helping to benefit our lives.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Lovvoll, D. (1997). Salary survey. &lt;i&gt;HFES Bulletin&lt;/i&gt;, 40(5), 1-3.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Martin, D. W., &amp;amp; Wogalter, M. S. (1997). The exposure of undergraduate students to human factors/ergonomics instruction. &lt;i&gt;Proceedings of the 41st Annual Meeting of the Human Factors and Ergonomics Society&lt;/i&gt; (pp. 470-473). Santa Monica, CA: HFES.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;br /&gt;This article is part of a continuing series on the various fields of psychology and the careers available within those fields.&lt;br /&gt;   Correspondence concerning this article should be addressed to Michael S. Wogalter, Department of Psychology, North Carolina State University, 640 Poe Hall, Campus Box 7801, Raleigh, NC 27695-7801. Electronic mail be sent to &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;a href="mailto:wogalter@ncsu.edu"&gt;&lt;i&gt;&lt;span style="color: blue;"&gt;wogalter@ncsu.edu&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;br /&gt;ABOUT THE AUTHORS: &lt;b&gt;Michael S. Wogalter, PhD,&lt;/b&gt; is an associate professor of psychology at North Carolina State University, Raleigh, NC. Before coming to NCSU, he held faculty &lt;/span&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="Picture_x0020_3" spid="_x0000_s1026" type="#_x0000_t75" alt="http://www.psichi.org/images/site_pages/3_1_wogalter_2.jpg" style="'position:absolute;margin-left:170pt;margin-top:0;width:210pt;height:130.5pt;" allowoverlap="f"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image008.jpg" title="3_1_wogalter_2"&gt;  &lt;w:wrap type="square" anchory="line"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image009.jpg" alt="http://www.psichi.org/images/site_pages/3_1_wogalter_2.jpg" shapes="Picture_x0020_3" align="right" height="174" width="280" /&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;appointments at Rensselaer Polytechnic Institute and the University of Richmond. He received his PhD in human factors psychology from Rice University, an MA in human experimental psychology from the University of South Florida, and a BA in psychology from the University of Virginia.&lt;br /&gt;   He teaches graduate-level courses in human-computer interaction and risk communication, and undergraduate courses in ergonomics. Most of his research focuses on hazard perception, warnings, complex visual and auditory displays, and human information processing. An active member of the Human Factors and Ergonomics Society, he is currently secretary-treasurer and is a member of the Executive Council. He holds membership in several other professional organizations including APA, APS, the Ergonomics Society, and Sigma Xi. He is also on the editorial boards of the journals &lt;i&gt;Human Factors, Ergonomics, Psychology &amp;amp; Marketing&lt;/i&gt;, and &lt;i&gt;Occupational Ergonomics&lt;/i&gt;.&lt;br /&gt;   &lt;b&gt;Wendy Rogers, PhD,&lt;/b&gt; is currently an associate professor in the School of Psychology at the Georgia Institute of Technology, where she is a member of the engineering psychology program. She received her BA from Southeastern Massachusetts University and her MS (1989) and PhD (1991) from Georgia Institute of Technology.&lt;br /&gt;   Her research interests include skill acquisition, human factors, training, attention, automaticity, individual differences, and cognitive aging. Her research is currently funded by the National Institutes of Health (National Institute on Aging) as part of the Center for Applied Cognitive Research on Aging. She serves on the editorial boards of &lt;i&gt;Psychology and Aging, Experimental Aging Research, Ergonomics in Design, &lt;/i&gt;and &lt;i&gt;Human Factors. &lt;/i&gt;She is immediate past president fo the Division of Appllied Experimental and Engineering Psychology (APA's Division 21). She is also the chair of Student Affairs and member of the Executive Council of the Human Factors and Ergonomics Society.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;&lt;br /&gt;____________________________________________&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"&gt;Fall 1998 issue of &lt;i&gt;Eye on Psi Chi&lt;/i&gt; (Vol. 3, No. 1, pp. 23-26), published by Psi Chi, The National Honor Society in Psychology (Chattanooga, TN). Copyright, 1998, Psi Chi, The National Honor Society in Psychology. All rights reserved.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-143782415216664535?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/143782415216664535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=143782415216664535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/143782415216664535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/143782415216664535'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/07/human-factorsergonomics-using.html' title='Human Factors/Ergonomics: Using Psychology to Make a Better and Safer World'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-6005622069303401010</id><published>2008-06-27T05:01:00.000-07:00</published><updated>2008-06-27T05:22:21.080-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='paper'/><category scheme='http://www.blogger.com/atom/ns#' term='attachment'/><title type='text'>Reading Response to Giudice (2008)</title><content type='html'>&lt;p id="x2._" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._0"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="x2._1"  style="font-size:100%;"&gt;Reading Response to Giudice (2008)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._2" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._3"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="x2._4"  style="font-size:100%;"&gt;&lt;i id="x2._5"&gt;Abstract&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._6" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._7"  style="font-size:100%;"&gt;&lt;span id="x2._8"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="x2._9" style="background: rgb(255, 255, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;Our lab’s research in China&lt;/span&gt; does not show gender differences in insecure attachment patterns. We believe that &lt;span id="x2._10" style="background: rgb(255, 255, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;cultural&lt;/span&gt; differences between Chinese and Western societies may help to explain this phenomenon. Mating and parenting circumstances in China do not allow males to adopt a zero-investment strategy. In addition, attachment styles are transmitted across generations and last for the whole lifespan.  Here, we argue that the &lt;span id="x2._11" style="background: rgb(255, 255, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;influence of mating and parenting on the well-developed attachment patterns in childhood is relatively small.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._12" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;br /&gt;&lt;br /&gt; &lt;/p&gt; &lt;p id="x2._15" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._16"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="x2._17"  style="font-size:100%;"&gt;&lt;i id="x2._18"&gt;Full Text&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._19" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._20"  style="font-size:100%;"&gt;&lt;span id="x2._21"  style="font-family:Times New Roman, serif;"&gt;In section 6 of the target article, Giudice (2008) reported a significant gender difference in insecure attachment: Whereas females were more likely to be ambivalent, males were more likely to be avoidant. However, gender differences have rarely been reported in prior studies (Crittenden 2000; Schmitt 2003). We believe a cross-cultural perspective may help to reconcile this apparent contradiction. In particular, attachment studies in Asian cultural samples, such as China, should be taken into account for a more comprehensive analysis.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._22" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._23"  style="font-size:100%;"&gt;&lt;span id="x2._24"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="x2._25" style="background: rgb(255, 255, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;Our recent studies in China&lt;/span&gt; suggest that there are no gender difference in insecure attachment styles (Li 2005; Li &amp;amp; Du 2005; Li &amp;amp; Kato 2006; Li et al 2006a; b; c; 2007; in press; Wang &amp;amp; Li in press). Table 1 summarizes our results across a variety of demographic groups (middle school students, undergraduates, company employees, inpatients and mothers). Pearson Chi-square tests showed that neither sample had significantly different attachment patterns between males and females. We also note that in the mother sample, there were more avoidant females than anxious/ambivalent ones. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="x2._26" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;br /&gt;&lt;br /&gt; &lt;/p&gt; &lt;p id="x2._29" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify" lang=""&gt; &lt;img id="x2._30" src="http://docs.google.com/File?id=dcwscj59_330d7qwrrfw_b" name="Table 1" align="bottom" border="0" height="359" width="648" /&gt;&lt;/p&gt; &lt;p id="x2._31" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._32"  style="font-size:100%;"&gt;&lt;span id="x2._33"  style="font-family:Times New Roman, serif;"&gt;Giudice argues that males and females strive to maximize their reproduction of genes. Gender differences in mating, reproduction and parenting efforts lead to diverse attachment styles: insecure females tend to be anxious/ ambivalent, while insecure males tend to be avoidant (sect 6.3.1, para 5). However, reproductive investment alone does not account for the total cost of reproduction and parenting. Females have the privilege to select the most suitable male who help child-rearing (Clutton-Brock 1991). Transitional China since the 1980’s is one such example where parental investment is significantly higher than that in Western nations (Wang &amp;amp; Ollendick 2001). During the 1980’s, the Chinese government began to implement family planning (“one child”) policy to control population growth, which profoundly changed the demographic as well as cultural values in Chinese society (Arnold &amp;amp; Liu 1986; Xu et al. 2007). First, this policy does not allow males to have multiple children, which requires males to invest in the quality of offspring, rather than quantity (Wang &amp;amp; Ollendick 2001). This greatly reduces the likelihood of males taking a zero-parenting strategy. Secondly, the traditional son preference was even exaggerated and the “one child” policy often became a “one son” policy, &lt;span id="x2._34" style="background: rgb(255, 255, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;creating an unbalanced gender ratio (Chan et al 2006). In this case, males have to compete for limited number of females.&lt;/span&gt; Finally, the woman’s rights movement has been widespread since the communist liberation in the early 1950s when the socio-economic status of women improved considerably. Recent studies have shown that during family purchase decisions, females now play an equal- status role as males (Dong &amp;amp; Li 2007). Thus, for contemporary Chinese females, although they cannot shift the balance between parenting and mating effort as easily as men&lt;span id="x2._35" style="background: rgb(0, 255, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;, they do not need to develop an anxious/ambivalent attachment strategy to invite paternal investment (Archer &amp;amp; Mehdikhani, 2000).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._36" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._37"  style="font-size:100%;"&gt;&lt;span id="x2._38"  style="font-family:Times New Roman, serif;"&gt;A gender difference in insecure attachment could also be explained from the perspective of intergeneration transmission. According to Bowlby (1980), people develop their mental representations of the environment and significant others based on their experience with parents or other caregivers. Bowlby labeled this mental representation as an Internal Working Model (IWM). Once formed, IWMs tend to remain stable for the whole lifespan (Hu &amp;amp; Meng 2003). The stability of IWM produces similar attachment patterns from childhood to adulthood. This argument is supported by cross-sectional and longitudinal studies (Durrett et al. 1984; Brennan et al. 1998; Fraley &amp;amp; Spieker 2003; Hu &amp;amp; Meng 2003; Nakao &amp;amp; Kato 2003; Li &amp;amp; Kato 2006). Li (2006) summarized the distribution of attachment styles in infants and adults in Chinese and American samples. He found that the proportion of each attachment style was similar for both infants and adults. This result suggests that the attachment style may remain relatively stable across the lifespan. Longitudinal studies on attachment development also support the stability of attachment styles within generations (Shemmings 2006; Emery et al. 2008). The stability of attachment from &lt;span id="x2._39" style="background: rgb(255, 255, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;infancy&lt;/span&gt; to adulthood suggests that the influence of mate selection and sex competition in early adulthood on attachment patterns is trivial. This may well explain the lack of gender difference in insecure attachment in Chinese samples.  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._40" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._41"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="x2._42"  style="font-size:100%;"&gt;Acknowledgement&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._43" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._44"  style="font-size:100%;"&gt;&lt;span id="x2._45"  style="font-family:Times New Roman, serif;"&gt;This study is supported by National Natural Science Foundation of China (No. ). We thank Adam Pearson and Mark Sheskin for useful comments and suggestions.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._46" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._47"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="x2._48"  style="font-size:100%;"&gt;References &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._49" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._50"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="x2._51"  style="font-size:100%;"&gt;Archer, J. &amp;amp; Mehdikhani, M. (2000) Strategic pluralism: men and women start from a different point. Behavioural and Brain Sciences 23: 620–621. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._52" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._53"  style="font-size:100%;"&gt;&lt;span id="x2._54"  style="font-family:Times New Roman, serif;"&gt;Arnold, F. &amp;amp; Liu, Z. (1986) Sex preference, fertility, and family planning in China. &lt;i id="x2._55"&gt;Population and Development Review&lt;/i&gt; 12: 221-246. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._56" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._57"  style="font-size:100%;"&gt;&lt;span id="x2._58"  style="font-family:Times New Roman, serif;"&gt;Chan, C., Eric, B. &amp;amp; Chan C. (2006) Attitudes to and practices regarding sex selection in China. &lt;i id="x2._59"&gt;Prenatal Diagnosis&lt;/i&gt; 26: 610-613. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._60" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._61"  style="font-size:100%;"&gt;&lt;span id="x2._62"  style="font-family:Times New Roman, serif;"&gt;Clutton-Brock, T.H. (1991) &lt;i id="x2._63"&gt;The Evolution of Parental Care&lt;/i&gt;. Princeton University Press &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._64" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._65"  style="font-size:100%;"&gt;&lt;span id="x2._66"  style="font-family:Times New Roman, serif;"&gt;Dong, M. &amp;amp; Li, S. (2007) Conflict resolution in Chinese family purchase decisions: The impact of changing female roles and marriage duration. &lt;i id="x2._67"&gt;International Journal of Conflict Management&lt;/i&gt; 18: 308-324. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._68" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._69"  style="font-size:100%;"&gt;&lt;span id="x2._70"  style="font-family:Times New Roman, serif;"&gt;Emery, J., Paguette, D. &amp;amp; Bigras, M. (2008) Factors predicting attachment patterns in infants of adolescent mothers. &lt;i id="x2._71"&gt;Journal of Family Studies&lt;/i&gt; 14: 65-90.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._72" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._73"  style="font-size:100%;"&gt;&lt;span id="x2._74"  style="font-family:Times New Roman, serif;"&gt;Li, T. (2005) Patterns of attachment in adulthood and rearing style. &lt;i id="x2._75"&gt;Chinese Journal of Behavioral Medical Science&lt;/i&gt; 15: 149-150. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._76" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._77"  style="font-size:100%;"&gt;&lt;span id="x2._78"  style="font-family:Times New Roman, serif;"&gt;Li, T., Wang, X. &amp;amp; Guo, X. (2006) Attachment style and dyadic heterosexual interaction behavior among junior high school students. &lt;i id="x2._79"&gt;Chinese Journal of Behavioral Medical Science&lt;/i&gt; 15: 644-646. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._80" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._81"  style="font-size:100%;"&gt;&lt;span id="x2._82"  style="font-family:Times New Roman, serif;"&gt;Li, T. &amp;amp; Du, S. (2005) Analysis of adult attachment style of 50 surgery patients. &lt;i id="x2._83"&gt;Chinese Journal of Clinical Psychology&lt;/i&gt; 13: 417-419. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._84" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._85"  style="font-size:100%;"&gt;&lt;span id="x2._86"  style="font-family:Times New Roman, serif;"&gt;Li, T. &amp;amp; Kato, K. (2006) Measuring adult attachment: validation of ECR in Chinese sample. &lt;i id="x2._87"&gt;Acta Psychologica Sinica&lt;/i&gt; 38: 399-406. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._88" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._89"  style="font-size:100%;"&gt;&lt;span id="x2._90"  style="font-family:Times New Roman, serif;"&gt;Li, T., He, J., Guo, X. &amp;amp; Lu, X. (2006) Adult attachment and social support of self-learning students. &lt;i id="x2._91"&gt;Chinese Journal of Behavioral Medical Science&lt;/i&gt; 15: 1019-1020. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._92" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._93"  style="font-size:100%;"&gt;&lt;span id="x2._94"  style="font-family:Times New Roman, serif;"&gt;Li, T., Li, J. &amp;amp; Qin, H. (in press) Adult attachment and mental health in Chinese college students. &lt;i id="x2._95"&gt;Chinese Mental Health Journal&lt;/i&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._96" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._97"  style="font-size:100%;"&gt;&lt;span id="x2._98"  style="font-family:Times New Roman, serif;"&gt;Li, T., Li, N. &amp;amp; Zhu, Y. (2007) Adult attachment and subjective well-being of Chinese college students. &lt;i id="x2._99"&gt;Chinese Journal of Behavioral Medical Science&lt;/i&gt; 16:54-56.  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._100" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._101"  style="font-size:100%;"&gt;&lt;span id="x2._102"  style="font-family:Times New Roman, serif;"&gt;Li, T., Li, N. &amp;amp; Li, M. (2006) Correlation of adult attachment with social support and subjective well-being. &lt;i id="x2._103"&gt;Chinese Journal of Clinical Rehabilitation &lt;/i&gt;10: 47-49.  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._104" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._105"  style="font-size:100%;"&gt;&lt;span id="x2._106"  style="font-family:Times New Roman, serif;"&gt;Shemmings, D. (2006) Using adult attachment theory to differentiate adult children's internal working models of later life filial relationships. &lt;i id="x2._107"&gt;Journal of Aging Studies&lt;/i&gt; 20: 177-191.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._108" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._109"  style="font-size:100%;"&gt;&lt;span id="x2._110"  style="font-family:Times New Roman, serif;"&gt;Wan, L. &amp;amp; Li, T. (in press) Adult attachment and handling interpersonal conflict of Employees.&lt;i id="x2._111"&gt; Chinese Journal of Clinical Rehabilitation.&lt;/i&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._112" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._113"  style="font-size:100%;"&gt;&lt;span id="x2._114"  style="font-family:Times New Roman, serif;"&gt;Wang, Y. &amp;amp; Ollendick, T. H. (2001) A Cross-cultural and developmental analysis of self-esteem in Chinese and Western children. &lt;i id="x2._115"&gt;Clinical Child and Family Psychology Review&lt;/i&gt; 4: 253-271. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._116" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;span id="x2._117"  style="font-size:100%;"&gt;&lt;span id="x2._118"  style="font-family:Times New Roman, serif;"&gt;Xu, A., Xie, X., Liu, W., Xia, Y. &amp;amp; Liu, D. (2007) Chinese family strengths and resiliency. &lt;i id="x2._119"&gt;Marriage and Family Review&lt;/i&gt; 41: 143-164. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="x2._120" class="western" style="margin-bottom: 0.14in; line-height: 150%;" align="justify"&gt; &lt;br /&gt;&lt;br /&gt; &lt;/p&gt; &lt;p id="x2._123" class="western" style="margin-bottom: 0.14in;"&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-6005622069303401010?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/6005622069303401010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=6005622069303401010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/6005622069303401010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/6005622069303401010'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/06/reading-response-to-giudice-2008.html' title='Reading Response to Giudice (2008)'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-4682973245609398909</id><published>2008-06-26T06:25:00.000-07:00</published><updated>2008-06-26T06:27:10.646-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Human Computer Interaction'/><category scheme='http://www.blogger.com/atom/ns#' term='HCI'/><title type='text'>rfLogger: A Logging Browser and Data Processing Method

SurLogger: A Logging Browser and Data Processing Method In Web-based Studies</title><content type='html'>&lt;p id="igxj" class="western" style="margin-bottom: 0.14in;" align="center"&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt; &lt;p id="igxj2" class="western" style="margin-bottom: 0.14in;" align="center"&gt;&lt;span id="igxj3" style="font-size: 16pt;font-size:130%;" &gt;&lt;span id="igxj4"  style="font-family:Times New Roman, serif;"&gt;SurfLogger: A Logging Browser and Data Processing Method&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj5" class="western" style="margin-bottom: 0.14in;" align="center"&gt;&lt;span id="igxj6" style="font-size: 16pt;font-size:130%;" &gt;&lt;span id="igxj7"  style="font-family:Times New Roman, serif;"&gt;In Web-based Studies&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj8" class="western" style="margin-bottom: 0.14in;" align="center"&gt;&lt;span id="igxj9" style="font-size: 16pt;font-size:130%;" &gt;&lt;span id="igxj10"  style="font-family:Times New Roman, serif;"&gt;Jibo, He&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj11" class="western" style="margin-bottom: 0.14in;" align="center"&gt;&lt;span id="igxj12"  style="font-size:100%;"&gt;&lt;span id="igxj13"  style="font-family:Times New Roman, serif;"&gt;(Department of Psychology, University of Illinois, Urbana/Champaign, IL, 61801, USA)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj14" class="western" style="margin-bottom: 0.14in;" align="center"&gt;&lt;span id="igxj15"  style="color:#0000ff;"&gt;&lt;u id="igxj16"&gt;&lt;a id="igxj17" href="mailto:Jibohe2@uiuc.edu"&gt;&lt;span id="igxj18"  style="font-size:100%;"&gt;&lt;span id="igxj19"  style="font-family:Times New Roman, serif;"&gt;Jibohe2@uiuc.edu&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj20" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj21"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj22"  style="font-size:100%;"&gt;&lt;b id="igxj23"&gt;ABSTRACT&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj24" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj25"  style="font-size:100%;"&gt;&lt;span id="igxj26"  style="font-family:Times New Roman, serif;"&gt;Despite of the increasing interest in web-based studies, researchers lack a convenient tool for data collection.  The existing tools have constraints in the data they could collect or in the availabilities to the study environment. SurfLogger, described in this paper, is an automated data logging tool, free, open-source, cross-platform, and easy to modify. SurfLogger is expected to meet the increasing needs of web-based studies. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj27" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj28"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj29"  style="font-size:100%;"&gt;&lt;b id="igxj30"&gt;Keywords&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj31" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj32"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj33"  style="font-size:100%;"&gt;SurfLogger, browser, instrumentation, Web, WWW, Python&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj34" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj35"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj36"  style="font-size:100%;"&gt;&lt;b id="igxj37"&gt;INTRUDCTION&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj38" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;a id="igxj39" name="bcor*"&gt;&lt;/a&gt; &lt;span id="igxj40"  style="font-size:100%;"&gt;&lt;span id="igxj41"  style="font-family:Times New Roman, serif;"&gt;In this information age, the World Wide Web (WWW) is the most fast developing information resources (Eighmey, &amp;amp; McCord, 1998). The booming and infinite opportunities accompanying WWW win interests from vast of communities, including web site designers, user interface researcher, cognitive psychologists, E-commence businessman, as well as many others who are interested in characterizing how users interact with web browser and gain information from varied designs of web pages (Eighmey, &amp;amp; McCord, 1998; Wang, Jing, He, and Yang, 2007; Reeder, Pirolli, and Card, 2000). &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj42" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj43"  style="font-size:100%;"&gt;&lt;span id="igxj44"  style="font-family:Times New Roman, serif;"&gt;Despite of the wide interest in web-based researches, there are still no full-fledged and easily accessible tools to collect user log and browser interactive data. Current data collection methods are far from convenient. Some studies collected data from servers or proxies, which is not only bothersome and expensive to configure the servers or proxies, but also cannot capture users’ interaction with the browser and users experience (Pitkow, 1998).  Another substitutive solution is to use videotaped data, usually providing more comprehensive users information (Byrne, John, Wehrle, and Crow, 1999).  But coding videotaped data is too consuming in time and labor, and accuracies of coding cannot be guaranteed as perfect. Reeder, Pirolli and Card (2000) did a wonderful job to create WebLogger for data collection in web-based studies. Sadly, WebLogger was written in Visual Basics and depends on Microsoft’s Internet Explorer 6.0 (IE) (Reeder, Pirolli and Card, 2000, 2001). WebLogger cannot be used after IE updating to the latest version of IE 7.0, and neither in Linux and Mac Operating System. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj45" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj46"  style="font-size:100%;"&gt;&lt;span id="igxj47"  style="font-family:Times New Roman, serif;"&gt;To meet the needs for such a tool in web-based research, I have developed SurfLogger, which collects users’ interaction data with both the web and the browser. SurfLogger is an automated data logging tool, free, open-source, and cross-platform (can be used in Windows, Linux, Mac and many other operating systems), and easy to modify. SurfLogger does not depend on other software, such as Internet Explorer, and does not need installation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj48" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj49"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj50"  style="font-size:100%;"&gt;&lt;b id="igxj51"&gt;SURFLOGGER&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj52" class="western" style="margin-bottom: 0.14in;"&gt;&lt;b id="igxj53"&gt;&lt;span id="igxj54"  style="font-size:100%;"&gt;&lt;span id="igxj55"  style="font-family:Times New Roman, serif;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p id="igxj56" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj57"  style="font-size:100%;"&gt;&lt;span id="igxj58"  style="font-family:Times New Roman, serif;"&gt;SurfLogger is written in Python, a scripting language, and the GUI (Graphical User Interface) is created with wxPython, which is a Python bundle of wxWidget. SurfLogger can record a variety of user actions with the web pages and the browsers. SurfLogger produces two files, logfile.txt and urlfile.txt. Logfile.txt stores action IDs (natural numbers assigned to each action, used to track the record to the responding actions), the time for each actions, interaction with the browsers (such as, clicking on the Back, Forward, Home, etc. buttons), and mouse coordination when clicking. The time record could be used to compute the time of completion for each task. The number of button press on the browsers could be used as a measure of effort in carrying out the task. SurfLogger also captures the images of each screen when the web page refreshes. Marking the mouse coordination on the screen captures could tell us what links the users clicked at. Urlfile.txt stores action IDs and URLs (Uniform Resource Locator). Action IDs are used to synchronize the record in logfile.txt and urlfile.txt. URL record is stored in a separate file because the abundant information it can provides. I will give an example about how to extract information from urlfile.txt in case study section of this paper. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj59" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj60"  style="font-size:100%;"&gt;&lt;span id="igxj61"  style="font-family:Times New Roman, serif;"&gt;SurfLogger also calls external software to record the whole process of user actions. Currently, I used Michael Urman’s Screen Recorder named cankiri as my external software for recording, because it is also written in python and shares the same spirit of   open source.  With video record, the researchers could know more about users’ actions. If quality of recording is emphasized, SurfLogger could easily switch to call other recording software, and only one line of the code has to change to refer to the path of the external software. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj62" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj63"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj64"  style="font-size:100%;"&gt;&lt;b id="igxj65"&gt;Log File Format&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj66" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj67"  style="font-size:100%;"&gt;&lt;span id="igxj68"  style="font-family:Times New Roman, serif;"&gt;The records are stored in two files, the logfile.txt and urlfile.txt. Every variable takes up one line, which begins with variable name, followed by variable value.  The variable name is self-explanatory. In the logfile.txt (see Figure 1), a record set for one action includes the mouse coordination, browser action (clicking on Back, Forward Home or other button on the browser), time for the action, and action ID. In the urlfile.txt (see Figure 2), each set of record contains action ID and URL. Adjacent record sets are separated by a blank line. The format of log file is designed to be human-readable and easily read for analysis software.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj69" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;i id="igxj70"&gt;&lt;span id="igxj71"  style="font-size:100%;"&gt;&lt;span id="igxj72"  style="font-family:Times New Roman, serif;"&gt;ID: 3&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p id="igxj73" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;i id="igxj74"&gt;&lt;span id="igxj75"  style="font-size:100%;"&gt;&lt;span id="igxj76"  style="font-family:Times New Roman, serif;"&gt;TIME: 04 Apr 2008 11:50:04&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p id="igxj77" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;i id="igxj78"&gt;&lt;span id="igxj79"  style="font-size:100%;"&gt;&lt;span id="igxj80"  style="font-family:Times New Roman, serif;"&gt;Mouse Coordination: 125 52&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p id="igxj81" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;i id="igxj82"&gt;&lt;span id="igxj83"  style="font-size:100%;"&gt;&lt;span id="igxj84"  style="font-family:Times New Roman, serif;"&gt;Browser Action: Back&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p id="igxj85" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;b id="igxj86"&gt;&lt;span id="igxj87"  style="font-size:100%;"&gt;&lt;span id="igxj88"  style="font-family:Times New Roman, serif;"&gt;Figure 1. Records in logfile.txt&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p id="igxj89" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;i id="igxj90"&gt;&lt;span id="igxj91"  style="font-size:100%;"&gt;&lt;span id="igxj92"  style="font-family:Times New Roman, serif;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span id="igxj93"  style="font-family:宋体, SimSun;"&gt;&lt;span id="igxj94" lang="zh-CN"&gt;&lt;i id="igxj95"&gt;&lt;span id="igxj96"  style="font-size:100%;"&gt;： &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;i id="igxj97"&gt;&lt;span id="igxj98"  style="font-size:100%;"&gt;&lt;span id="igxj99"  style="font-family:Times New Roman, serif;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p id="igxj100" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;i id="igxj101"&gt;&lt;span id="igxj102"  style="font-size:100%;"&gt;&lt;span id="igxj103"  style="font-family:Times New Roman, serif;"&gt;URL&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span id="igxj104"  style="font-family:宋体, SimSun;"&gt;&lt;span id="igxj105" lang="zh-CN"&gt;&lt;i id="igxj106"&gt;&lt;span id="igxj107"  style="font-size:100%;"&gt;：&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;i id="igxj108"&gt;&lt;span id="igxj109"  style="font-size:100%;"&gt;&lt;span id="igxj110"  style="font-family:Times New Roman, serif;"&gt;http://www.citeulike.org/user/testMaterial/article/2624476&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p id="igxj111" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;b id="igxj112"&gt;&lt;span id="igxj113"  style="font-size:100%;"&gt;&lt;span id="igxj114"  style="font-family:Times New Roman, serif;"&gt;Figure 2. Records in urlfile.txt&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p id="igxj115" class="western" style="margin-bottom: 0.14in;"&gt;&lt;b id="igxj116"&gt;&lt;span id="igxj117"  style="font-size:100%;"&gt;&lt;span id="igxj118"  style="font-family:Times New Roman, serif;"&gt;Case study &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/p&gt; &lt;p id="igxj119" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj120"  style="font-size:100%;"&gt;&lt;span id="igxj121"  style="font-family:Times New Roman, serif;"&gt;To demonstrate how SurfLogger could benefit web-based research, I will briefly explain the usability analysis of IGroup as a case study (Wang, Jing, He, and Yang, 2007). IGroup is an image search engine, presenting the results in semantic clusters. To test whether IGroup can increase search efficiency compared to MSN, we developed the predecessor of SurfLogger, which functioned similarly like SurfLogger, but less flexible. We developed a measure of Search Effort to compare IGroup and MSN objectively. Search Effort was defined as the number of query input, and number of links and cluster names clicked by the users. Query input, links and cluster names clicked were extracted from URLs recorded by our automated logging tool. A sample URL recorded in this study was listed as follows:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj122" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;span id="igxj123"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj124"  style="font-size:100%;"&gt;&lt;i id="igxj125"&gt;Wednesday, August 30, 2006 3:06:54 PM&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj126" class="western" style="margin-left: 0.5in; margin-bottom: 0.14in;"&gt;&lt;i id="igxj127"&gt;&lt;span id="igxj128"  style="font-size:100%;"&gt;&lt;span id="igxj129"  style="font-family:Times New Roman, serif;"&gt;http://msra-vss50-b/igroup2/search.aspx?q=&lt;b id="igxj130"&gt;Disney&lt;/b&gt;#g,&lt;b id="igxj131"&gt;14&lt;/b&gt;,&lt;b id="igxj132"&gt;1&lt;/b&gt;,-1&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p id="igxj133" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj134"  style="font-size:100%;"&gt;&lt;span id="igxj135"  style="font-family:Times New Roman, serif;"&gt;The characters in bold, “Disney”, “14”, and “1” were the input query, ID of cluster name, and result page. The information could be extracted from the URL by simple text processing.  For code of data reduction, URL extraction and source code of SurfLogger please refer to my project page of SurfLogger.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj136" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj137"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj138"  style="font-size:100%;"&gt;&lt;b id="igxj139"&gt;RELATED WORK&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj140" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj141"  style="font-size:100%;"&gt;&lt;span id="igxj142"  style="font-family:Times New Roman, serif;"&gt;Although a large number of researchers are interested in web-based study, there are not many well-developed tools. Reeder, Pirolli and Card (2000) developed a great tool called WebLogger, which can collect extensive data, including user input from keyboard and mouse, user actions on the interface elements of IE, and URLs. Choo, Detlor and Turnbull (1999) also developed a similar tool named WebTracker. But both WebLogger and WebTracker can be used only in Windows platform, and relied on the explorer software of IE or Netscape’s Navigator. After the explorers upgraded, the codes of WebLogger and WebTracker have to update too, in order to function normally. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj143" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj144"  style="font-size:100%;"&gt;&lt;span id="igxj145"  style="font-family:Times New Roman, serif;"&gt;The LogSquare, sold by ManGold Inc., can record keyboard entries, web page actions, mouse clicks, user comments and coding etc. However, despite the price of LogSquare, it can not offer researchers the flexibilities in data collecting and analysis. IT companies also wrote some tools for their usability test. But these tools are usually not full-fledged, and not available to the common researchers (Wang, Jing, He, and Yang, 2007).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj146" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj147"  style="font-size:100%;"&gt;&lt;span id="igxj148"  style="font-family:Times New Roman, serif;"&gt;Besides the above mentioned automated logging tools, researchers also used some compensatory recording methods. Catledge and Pitkow (1995) studies user interface by capturing client-side browsing event with NCSA’s XMosaic. Byrne and his colleague (1999) used videotape recording to study web-browsing behaviors. However, these methods are not only time-consuming, but also provided limited data about users’ behaviors.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj149" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj150"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj151"  style="font-size:100%;"&gt;&lt;b id="igxj152"&gt;CONCLUSION&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj153" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj154"  style="font-size:100%;"&gt;&lt;span id="igxj155"  style="font-family:Times New Roman, serif;"&gt;SurfLogger is a useful tool for collecting data for web-based researches. With its great features of automated data logging, free, open-source, cross-platform, and no dependence on other browsers, SurfLogger can free many researchers from the financial and time cost in data collecting. SurfLogger is expected to contribute more to the increasing interest in web-based researches. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj156" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj157"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj158"  style="font-size:100%;"&gt;&lt;b id="igxj159"&gt;ACKNOWLEDGEMENTS&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj160" class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span id="igxj161"  style="font-size:100%;"&gt;&lt;span id="igxj162"  style="font-family:Times New Roman, serif;"&gt;I appreciate Dr. Wai-Tat Fu of University of Illinois, Urbana/Champaign for suggestion and revision. I would also like to thank Jeff Grimmett and Michael Urman for sharing their work, thank Robin Dunn and other members of the Python/wxPython communities for information and help. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj163" class="western" style="margin-bottom: 0.14in;"&gt;&lt;span id="igxj164"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj165"  style="font-size:100%;"&gt;&lt;b id="igxj166"&gt;REFERENCES&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj167" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj168"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj169"  style="font-size:100%;"&gt;Byrne, M.D., John, B.E., Wehrle, N.S., and Crow, D.C. (1999). The Tangled Web We Wove: A Taskonomy of WWW Use. In Proceedings of CHI '99 (Pittsburgh PA, May, 1999), ACM Press, 544-551.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj170" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj171"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj172"  style="font-size:100%;"&gt;Cankiri. &lt;span id="igxj173"  style="color:#0000ff;"&gt;&lt;u id="igxj174"&gt;&lt;a id="igxj175" href="http://www.tortall.net/mu/wiki/Cankiri"&gt;http://www.tortall.net/mu/wiki/Cankiri&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj176" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj177"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj178"  style="font-size:100%;"&gt;Catledge, L.D. and Pitkow, J.E. (1995). Characterizing browsing strategies in the World Wide Web. In  Computer Networks and ISDN Systems 27: 1065-1073. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj179" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj180"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj181"  style="font-size:100%;"&gt;Choo, C.W., Detlor, B., and Turnbull, D. Working. (1999). The web: An Empirical Model of Web Use. HICSS’33 (Hawaii International Conference on Systems Science). Available at &lt;a id="igxj182" href="http://choo.fis.utoronto.ca/FIS/ResPub/HICSS/"&gt;http://choo.fis.utoronto.ca/FIS/ResPub/HICSS/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj183" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj184"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj185"  style="font-size:100%;"&gt;Eighmey, J., &amp;amp; McCord, L. (1998). Adding value in the information age: Uses and gratifications of sites on the World Wide Web, Journal of Business Research&lt;br /&gt;41(3):187-194. &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="igxj187" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj188"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj189"  style="font-size:100%;"&gt;Igroup: &lt;a id="igxj190" href="http://igroup.msra.cn/"&gt;http://igroup.msra.cn/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj191" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj192"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj193"  style="font-size:100%;"&gt;Jing, F. Wang, C., Yao, Y. , Deng, K. , Zhang, L., &amp;amp; Ma, W.Y. (2006). IGroup: A web image search engine with semantic clustering of search results. International Multimedia Conference: Proceedings of the 14th annual ACM international conference on Multimedia, Santa Barbara, CA, USA.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj194" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj195"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj196"  style="font-size:100%;"&gt;LogSquare. &lt;a id="igxj197" href="http://www.mangold.de/LogSquare.16.0.html"&gt;http://www.mangold.de/LogSquare.16.0.html&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj198" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj199"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj200"  style="font-size:100%;"&gt;Pitkow, J.E. (1998). Summary of WWW Characterizations. In Proceedings of the Seventh International WWW Conference, Brisbane, Australia. Also available at &lt;a id="igxj201" href="http://www7.scu.edu.au/programme/fullpapers/1877/com1877.htm"&gt;http://www7.scu.edu.au/programme/fullpapers/1877/com1877.htm&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj202" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj203"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj204"  style="font-size:100%;"&gt;Reeder, R., Pirolli, P., and Card, S. (2001). WebEyeMapper and Weblogger: Tools for analyzing eye tracking data collected in web-use studies.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj205" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj206"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj207"  style="font-size:100%;"&gt;Reeder, R., Pirolli, P., and Card, S. (2000). WebLogger: A data collection tool for web-use studies. Technical report number UIR-R-2000-06 online at &lt;a id="igxj208" href="http://www.parc.xerox.com/istl/projects/uir/pubs/default.html"&gt;http://www.parc.xerox.com/istl/projects/uir/pubs/default.html&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj209" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj210"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj211"  style="font-size:100%;"&gt;Wang, S., Jing, F., He, J., Yang, J. (2007), IGroup: Presenting Web Image Search Results in Semantic Clusters. Proc. SIG CHI’2007, ACM Press.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj212" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj213"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj214"  style="font-size:100%;"&gt;Python. &lt;a id="igxj215" href="http://www.python.org/"&gt;http://www.python.org/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj216" style="margin-left: 0.5in; text-indent: -0.5in; margin-top: 0.19in; margin-bottom: 0.19in; line-height: 100%;"&gt; &lt;span id="igxj217"  style="font-family:Times New Roman, serif;"&gt;&lt;span id="igxj218"  style="font-size:100%;"&gt;wxPython. &lt;a id="igxj219" href="http://www.wxpython.org/"&gt;http://www.wxpython.org/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="igxj220" class="western" style="margin-bottom: 0.14in;"&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-4682973245609398909?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/4682973245609398909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=4682973245609398909' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/4682973245609398909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/4682973245609398909'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/06/rflogger-logging-browser-and-data.html' title='rfLogger: A Logging Browser and Data Processing Method&#xA;&#xA;SurLogger: A Logging Browser and Data Processing Method In Web-based Studies'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-1446415297229827342</id><published>2008-06-26T06:16:00.000-07:00</published><updated>2008-06-26T06:20:59.859-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='about me'/><title type='text'>use of this blog</title><content type='html'>This blog will be used to communicate with my colleague and spread the knowledge of Human Factors and Engineering Psychology. I will publish my researches and writings in HF and Engineering Psychology at this blog. Some of my other training and interest, such as, developmental psychology, attachment, computer science, artificial intelligence, driving, economics and music, may also appear in this site.&lt;br /&gt;    I am very happy to discuss with you if you are interested in my writings. Please correspond to hejibo@gmail.com. Thank you for your interest!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-1446415297229827342?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/1446415297229827342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=1446415297229827342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/1446415297229827342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/1446415297229827342'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/06/use-of-this-blog.html' title='use of this blog'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5153018376412094023.post-5847595435844074185</id><published>2008-06-26T05:44:00.000-07:00</published><updated>2008-06-26T06:15:45.684-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='about me'/><title type='text'>about this blogger: He, Jibo</title><content type='html'>&lt;table border="0" cellpadding="0" width="80%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="79%"&gt;&lt;p&gt;&lt;span style="font-size:+1;"&gt;&lt;strong&gt;                 &lt;span id="peoplename"&gt;Mr. Jibo He&lt;/span&gt;                               &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span id="peopletitle"&gt;Graduate Research Assistant&lt;/span&gt;                             &lt;/p&gt;                   &lt;p&gt;&lt;a id="peopleemail" href="mailto:jibohe2@illinois.edu"&gt;jibohe2@illinois.edu&lt;/a&gt;&lt;br /&gt;                    &lt;span id="peoplephone"&gt;217-244-4461&lt;/span&gt; (phone)&lt;br /&gt;                    &lt;span id="peoplefax"&gt;217-244-8647&lt;/span&gt; (fax)&lt;/p&gt;                 &lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;                                                         &lt;p&gt;&lt;strong&gt;Address&lt;/strong&gt;&lt;br /&gt;                    &lt;span id="peopleaddress"&gt;University of Illinois&lt;br /&gt;3414 Beckman Institute&lt;br /&gt;405 N. Mathews&lt;br /&gt;Urbana, IL 61801&lt;/span&gt;                 &lt;/p&gt;                                      &lt;span id="peopleedu"&gt;&lt;p&gt;&lt;strong&gt;Education&lt;/strong&gt;&lt;br /&gt;B.S., Department of Psychology, Peking University, 2007&lt;br /&gt;B.S., China Center for Economic Research, Peking University, 2007&lt;/p&gt;&lt;/span&gt;                                        &lt;span id="peoplecourses"&gt;&lt;/span&gt;                                        &lt;span id="peopleinterests"&gt;&lt;p&gt;&lt;strong&gt;Special Interests&lt;/strong&gt;&lt;br /&gt;Visual cognition, attention, usability, user centered design, human-machine interaction&lt;/p&gt;&lt;/span&gt;                                                    &lt;span id="peopleWhatLiked"&gt;&lt;/span&gt;                                                    &lt;span id="peopleAdvice"&gt;&lt;/span&gt;                                                                    &lt;span id="ProjectSites"&gt;&lt;/span&gt;                                                     &lt;span id="peoplemore"&gt;&lt;/span&gt;                                                     &lt;span id="peopleselectedpubs"&gt;&lt;p&gt;&lt;strong&gt;Selected Articles&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;                   &lt;table id="dlPeopleSelectedPubs" style="border-collapse: collapse;" border="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td&gt;                           &lt;p&gt;   Jing, F., Wang, S., He, J., Du, Q., Zhang, L. (2007), &lt;span id="dlPeopleSelectedPubs_ctl00_IDpubUrl" visable="True"&gt; &lt;a&gt;Long Query Suggestion List: Prioritized or Organized&lt;/a&gt;.&lt;/span&gt;    &lt;em&gt; Proc. 12th HCI International.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;                           &lt;p&gt;   Wang, S., Jing, F., He, J., Yang, J. (2007), &lt;span id="dlPeopleSelectedPubs_ctl01_IDpubUrl" visable="True"&gt; &lt;a&gt;IGroup: Presenting Web Image Search Results in Semantic Clusters&lt;/a&gt;.&lt;/span&gt;    &lt;em&gt; Proc. SIG CHI’2007, ACM Press.&lt;/em&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5153018376412094023-5847595435844074185?l=engpsy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://engpsy.blogspot.com/feeds/5847595435844074185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5153018376412094023&amp;postID=5847595435844074185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/5847595435844074185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5153018376412094023/posts/default/5847595435844074185'/><link rel='alternate' type='text/html' href='http://engpsy.blogspot.com/2008/06/about-this-blogger-he-jibo.html' title='about this blogger: He, Jibo'/><author><name>Human Factors and Engineering Psychology</name><uri>http://www.blogger.com/profile/01989119148210730628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
