speye — Create sparse double identity matrices.
speye returns a sparse double matrix with ones on the main diagonal and unstored zeros elsewhere.
Syntax
S = speye()
S = speye(n)
S = speye(m, n)
S = speye(sz)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
A | NumericArray | Yes | — | Full or sparse matrix to convert. |
m | SizeArg | Yes | — | Number of rows. |
n | SizeArg | Yes | — | Number of columns. |
Returns
| Name | Type | Description |
|---|---|---|
S | NumericArray | Sparse double matrix. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:sparse:InvalidInput | Inputs are not a supported sparse construction form. | sparse: invalid input |
RunMat:sparse:InvalidIndex | Row or column subscripts are nonpositive, noninteger, or outside explicit dimensions. | sparse: invalid index |
RunMat:sparse:Internal | Sparse matrix materialisation fails internally. | sparse: internal error |
How speye works
speye()returns a sparse1 x 1identity matrix.speye(n)returns ann x nsparse identity matrix.speye(m, n)andspeye([m n])return anm x nsparse matrix withmin(m,n)stored diagonal ones.- Negative dimensions are treated as zero, matching MATLAB sparse allocation behavior.
- The optional typename accepts
double;singleandlogicalsparse storage are not represented by RunMat's currentSparseTensor.
GPU memory and residency
speye produces a host sparse matrix because RunMat does not currently expose native sparse GPU handles.
Example
Rectangular sparse identity
S = speye(2, 4);
full(S)Expected output:
ans = [1 0 0 0; 0 1 0 0]Using speye with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how speye changes the result.
Run a small speye example, explain the result, then change one input and compare the output.
FAQ
Does speye allocate a dense matrix?⌄
No. It constructs RunMat's compressed sparse column representation directly.
Can speye create native sparse GPU matrices?⌄
Not yet. RunMat sparse matrices are host-resident until the acceleration API exposes sparse storage.
Related Array functions
Creation
colon · eye · false · fill · full · inf · linspace · logspace · magic · meshgrid · nan · nchoosek · ndgrid · nonzeros · ones · peaks · perms · rand · randi · randn · randperm · range · sparse · spdiags · spones · sprand · true · zeros
Grouping
accumarray · combinations · discretize · findgroups · groupcounts · grp2idx · splitapply
Sorting Sets
argsort · intersect · ismember · ismembertol · issorted · issortedrows · setdiff · setxor · sort · sortrows · union · unique
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how speye is executed, line by line, in Rust.
- View the source for speye in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.