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

NameTypeRequiredDefaultDescription
ANumericArrayYesFull or sparse matrix to convert.
mSizeArgYesNumber of rows.
nSizeArgYesNumber of columns.

Returns

NameTypeDescription
SNumericArraySparse double matrix.

Errors

IdentifierWhenMessage
RunMat:sparse:InvalidInputInputs are not a supported sparse construction form.sparse: invalid input
RunMat:sparse:InvalidIndexRow or column subscripts are nonpositive, noninteger, or outside explicit dimensions.sparse: invalid index
RunMat:sparse:InternalSparse matrix materialisation fails internally.sparse: internal error

How speye works

  • speye() returns a sparse 1 x 1 identity matrix.
  • speye(n) returns an n x n sparse identity matrix.
  • speye(m, n) and speye([m n]) return an m x n sparse matrix with min(m,n) stored diagonal ones.
  • Negative dimensions are treated as zero, matching MATLAB sparse allocation behavior.
  • The optional typename accepts double; single and logical sparse storage are not represented by RunMat's current SparseTensor.

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.

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

Shape

blkdiag · cat · circshift · diag · flip · fliplr · flipud · horzcat · ipermute · kron · permute · repelem · repmat · reshape · rot90 · squeeze · toeplitz · tril · triu · vertcat

Indexing

find · ind2sub · sub2ind

Introspection

iscolumn · isempty · ismatrix · isrow · isscalar · isvector · length · ndims · numel · size

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how speye is executed, line by line, in Rust.

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.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.