---
name: "PDL::CCS::IO::LDAC"
section: "3pm"
platform: "linux"
package: "libpdl-ccs-perl"
version: "1.24.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/PDL::CCS::IO::LDAC"
---

# PDL::CCS::IO::LDAC(3pm)

LDA-C format text I/O for PDL::CCS::Nd

## NAME

PDL::CCS::IO::LDAC - LDA-C format text I/O for PDL::CCS::Nd

## SYNOPSIS

```
 use PDL;
 use PDL::CCS::Nd;
 use PDL::CCS::IO::LDAC;
 ##-- (Document x Term) matrix
 $dtm = PDL::CCS::Nd->newFromWhich($which,$nzvals);

 ccs_writeldac($dtm,"dtm.ldac");   # write a sparse LDA-C text file
 $dtm2 = ccs_readldac("dtm.ldac"); # read a sparse LDA-C text file
 ###-- (Term x Document) matrix in document-primary format
 $tdm = $dtm->xchg(0,1)->make_physically_indexed();

 ccs_writeldac($tdm,"tdm.ldac",   {transpose=>1});
 $dtm2 = ccs_readldac("tdm.ldac", {transpose=>1});
```

## I/O Utilities

### ccs\_writeldac

Write a 2d PDL::CCS::Nd (Document x Term) matrix as an LDA-C text file.  If the `"transpose"` option is specified and true, the input matrix `$ccs` is treated as as a (Term x Document) matrix, and output lines correspond to logical dimension 1 of `$ccs`.  Otherwise, output lines correspond to logical dimension 0 of `$ccs`, which is expected to be a (Document x Term) matrix.

```
 ccs_writeldac($ccs,$filename_or_fh)
 ccs_writeldac($ccs,$filename_or_fh,\%opts)
```

Options `%opts:`

```
 header => $bool,     ##-- do/don't write a header to the output file (default=do)
 transpose => $bool,  ##-- treat input $ccs as (Term x Document) matrix (default=don't)
```

### ccs\_readldac

Read a 2d (Document x Term) matrix from an LDA-C text file as a PDL::CCS::Nd object. If the `"transpose"` option is specified and true, the output matrix `$ccs` will be a (Term x Document) matrix, and input lines correspond to logical dimension 1 of `$ccs`.  Otherwise, input lines correspond to logical dimension 0 of `$ccs`, which will be returned as a (Document x Term) matrix.

```
 $ccs = ccs_readldac($filename_or_fh)
 $ccs = ccs_readldac($filename_or_fh,\%opts)
```

Options `%opts:`

```
 header => $bool,    ##-- do/don't try to read header data from the output file (default=do)
 type => $type,      ##-- value datatype (default: from header or $PDL::IO::Misc::deftype)
 transpose => $bool, ##-- generate a (Term x Document) matrix (default=don't)
 sorted => $bool,    ##-- assume input is lexicographically sorted (only if not transposed; default=don't)
```

## ACKNOWLEDGEMENTS

Perl by Larry Wall.

PDL by Karl Glazebrook, Tuomas J. Lukka, Christian Soeller, and others.

LDA-C package by by David M. Blei.

## AUTHOR

Bryan Jurish \<moocow@cpan.org\>

### Copyright Policy

Copyright (C) 2015-2024, Bryan Jurish. All rights reserved.

This package is free software, and entirely without warranty. You may redistribute it and/or modify it under the same terms as Perl itself.

## SEE ALSO

perl, PDL, PDL::CCS::Nd, PDL::CCS::IO::FastRaw, PDL::CCS::IO::FITS, PDL::CCS::IO::MatrixMarket, the LDA-C package documentation at \<http://www.cs.princeton.edu/~blei/lda-c/\> ...
