File Exchange

## Cleve_Lab

version 5.2.3 (1.79 MB) by Cleve Moler

### Cleve Moler (view profile)

A Mathematical Exploratium

Updated 01 Apr 2020

Fifty one interactive applications exploring mathematics, graphics, programming, games and curiosites. Many from Cleve's Corner blog,
<a href="">https://blogs.mathworks.com/cleve/</a>.
Repair webnews help and blog links..

### Cite As

Cleve Moler (2020). Cleve_Lab (https://www.mathworks.com/matlabcentral/fileexchange/59085-cleve_lab), MATLAB Central File Exchange. Retrieved .

Teodo

### Teodo (view profile)

Great

Shruti Shivaramakrishnan

### Shruti Shivaramakrishnan (view profile)

Raghu Boggavarapu

neeraj

Cleve Moler

### Cleve Moler (view profile)

Thanks, Andrew, @vfp16 is missing. I am not sure why. I will find out. - Cleve

Andrew Stamps

Cleve Moler

### Cleve Moler (view profile)

Try "struct" or "hex" or "binary".
-- Cleve

Emanuele Ruffaldi

### Emanuele Ruffaldi (view profile)

fp16 is quite useful.

Could you add a raw.m method to obtain the underlying uint16?

ceo nguyendung

Ingmar Rieger

### Ingmar Rieger (view profile)

Hey, as I did some tests with half floats I used Cleve Laboratory and found some shortcomings. I tried to fix all and tried to keep the design clean to the best of my MATLAB knowledge. My suggestions for changes can be found here: https://github.com/irieger/cleve-laboratory

1. Found no way to access the u matrix containing the uint16 packed half floats.
2. No way to create a fp16 matrix with already packed uint16 half float data.
3. It seems to be not ideally efficient to use a for loop and the for loops are designed to handle only 2 dimensional matrices. As I worked with image data I needed a third dimension.

1+2 are of course directly related to each other and helpful when one needs to operate on the binary data or wants to save the actual half float data.

Ingmar Rieger

Egor Spiridonov

### Egor Spiridonov (view profile)

Very helpful half-precision! Fixed bug really matters!
Thanks!

Ronnie North

### Ronnie North (view profile)

R2017b Home: Lots of errors

Jason Hu

Peterq Lee

Cleve Moler

### Cleve Moler (view profile)

Hi Matthew --
Sorry you are having difficulty with Cleve's Laboratory. But I'm afraid that I do not understand the nature of the problem. Could you please tell me what's wrong.
Thanks.
-- Cleve

Matthew

### Matthew (view profile)

This submission currently(!) deserves a one star rating. One the surface, it appears that no thought has been given to the end-users. For example, required products: MATLAB. No. That is not the case for the submitted code.

Attempts (one or more) were made back in November 2016 to fix these problems. Doesn't this mess prove the inadequacy of MATLAB's dependency analysis and FEX submission processes?

Kamil Wojcicki

Yuri Dreizin

### Yuri Dreizin (view profile)

Matlab 2016a, while the app requires 2016b.
When 2016b will be available?
Another problem:
When I tried to install 2016a (to try the app on it) and verified my license, I ran into another issue:
installation dialog of 2016a required to install a curve fitting toolbox (3.5.3 if I remember right). It did not allow me to uncheck it from the list of toolboxes to be downloaded (when I tried the NEXT button dimmed), but when I did leave it checked and tried to proceed, the next subdialog said that Matlab 9.0 is required, asking me to provide a path for it. But I think Matlab 9.0 is just another name for 2016 release which I tried to install (I do have 2014 and 2015 releases on my PC). So the installation procedure seems to create a vicious circle. Please help

Nathan Fitzgerald

### Nathan Fitzgerald (view profile)

Maybe I don't understand how to download apps, but I can't get this to run out of the box on Matlab R2015b. This is what I did:

- Clicked "Add-Ons" from the Home ribbon to open the add on explorer
- Searched for "Cleve" in the explorer, installed "Cleve Laboratory", agreed to the software agreement etc. Everything appeared to be installed with no obvious warnings.
- Typing "CleveLaboratoryApp" yields "Undefined function or variable 'CleveLaboratoryApp'."

- If I go the addon manager and "Open Folder", then type CleveLaboratoryApp, I get
Error using nargout
Function lab1 does not exist.

Error in CleveLaboratoryApp/startApp (line 58)
if nargout(@lab1) == 0

Error in CleveLaboratoryApp (line 38)
startApp(obj)

Is this some problem with the app install process where paths to functions like lab1.m are not getting addpathed? Or am I missing something? The help for CleveLaboratoryApp.m is pretty sparse, so it's hard to tell if I'm doing something wrong with syntax.

Rance Fortenberry

### Rance Fortenberry (view profile)

Tried installing latest but still failed with same error as Karl's:

com.mathworks.jmi.MatlabException: Failed to extract Matlab app file 'C:\Users\rfortenberry\AppData\Local\Temp\Temp1_Cleve Laboratory.zip\Cleve Laboratory.mlappinstall' to '\\fs1\Users\rfortenberry\My Documents\MATLAB\Apps\CleveLaboratory' with error: Error in parsing xml file. Details: 'unexpected end of input'
at com.mathworks.jmi.NativeMatlab.SendMatlabMessage(Native Method)
at com.mathworks.jmi.NativeMatlab.sendMatlabMessage(NativeMatlab.java:266)
at com.mathworks.jmi.MatlabLooper.sendMatlabMessage(MatlabLooper.java:120)
at com.mathworks.jmi.Matlab.mtFeval(Matlab.java:1710)
at com.mathworks.jmi.MatlabWorker.feval(MatlabWorker.java:197)
at com.mathworks.jmi.MatlabWorker\$2.run(MatlabWorker.java:79)
at com.mathworks.jmi.NativeMatlab.dispatchMTRequests(NativeMatlab.java:475)

Mark Knecht

### Mark Knecht (view profile)

This app hung during installation in Gentoo Linux so I killed Matlab to get control again. Will try again later.

fenghaifeng123

### fenghaifeng123 (view profile)

this is helpful for me to understand
how to use matlab efficient

S LIU

I need

Cleve Moler

### Cleve Moler (view profile)

I have updated this contribution, fixing the install problem, eliminating the call to imresize (the Image Processing Toolbox is on my path, but no everbody's), and adding Crossing Ladders to lab2.
-- Cleve

hicham gheddou

verry good

Karl Rudnick

### Karl Rudnick (view profile)

I believe the apostrophe only caused an error when, on Windows 10, I double-clicked the file to both fire up Matlab and run the add-on install file. The fileparts function had trouble parsing. After I repaired it, I still get the same error message. Do I need to upgrade from R2014b home? I'm retired now and like to minimize expenditures upgrading everything I pay for.

Cleve Moler

### Cleve Moler (view profile)

Did Karl discover that the apostrophe in Cleve's Laboratory is causing trouble with the app install? I'm not sure and will investigate.

Dan did discover that imresize in Durerperm comes from the Image Processing Toolbox, which is on my path, but not everybody's. I will repair that.

-- Cleve

Dominik

Karl Rudnick

### Karl Rudnick (view profile)

Will not install in my Home version : 8.4.0.150421 (R2014b)
I first had to remove apostrophes in the mlappinstall path name, but then I get this error message:
com.mathworks.jmi.MatlabException: Failed to extract Matlab app file 'C:/Users/karl/Documents/MATLAB/ClevesLaboratory/Cleve's Laboratory.mlappinstall' to 'C:/Users/karl/Documents/MATLAB/Apps/ClevesLaboratory - 5' with error: Error in parsing xml file. Details: 'unexpected end of input'
at com.mathworks.jmi.NativeMatlab.SendMatlabMessage(Native Method)
at com.mathworks.jmi.NativeMatlab.sendMatlabMessage(NativeMatlab.java:266)
at com.mathworks.jmi.MatlabLooper.sendMatlabMessage(MatlabLooper.java:120)
at com.mathworks.jmi.Matlab.mtFeval(Matlab.java:1622)
at com.mathworks.jmi.MatlabWorker.feval(MatlabWorker.java:197)
at com.mathworks.jmi.MatlabWorker\$2.run(MatlabWorker.java:79)
at com.mathworks.jmi.NativeMatlab.dispatchMTRequests(NativeMatlab.java:475)

Dan Schult

### Dan Schult (view profile)

I can't start this app. An error message appears while loading durerperm thumbnail icon:
Undefined function or variable 'imresize'.
Error in thumbnails1 (line 137)
x = imresize(X,1/2);

Error in lab1 (line 63)
thumbnails1(f)

When I search the Documentation for imresize, nothing shows up. Do I need to download something else?

Maybe the app should check for the presence of imresize?

Mikhail