2015-06-06 82 views
1

我正在Matlab中使用cellstr将字符转换为单元格字符串数组。例如:Matlab cellstr长度限制

A = 'a1a2a3a4...a100'; % I do not list all of the characters in A 
B = cellstr(A); 

但结果是

B = 'a1a2a3a4a5a6a7a8a9a10a11a12a13a14a15a16a17a18a19a20a21a22a23a24a25a26a27a28a29a30a31a32a33a34a35a36a37a38a39a40a41a42a43a...' 

它不会转换所有的字符。我想这是由极限造成的。有谁知道如何增加这个限制?

回答

0

它会转换所有的字符。省略号来自Matlab,在命令窗口的宽度处截断单元阵列显示的输出。 可以使用B{1}显示单元阵列的全部内容:

>> A = sprintf('a%g',1:100); 
>> B = cellstr(A) 
B = 
    'a1a2a3a4a5a6a7a8a9a10a11a12a13a14a15a16a17a18a19a20a21a22a23a24a25a26a...' 
>> B{1} 
ans = 
a1a2a3a4a5a6a7a8a9a10a11a12a13a14a15a16a17a18a19a20a21a22a23a24a25a26a27a28a29a30a31a32a33a34a35a36a37a38a39a40a41a42a43a44a45a46a47a48a49a50a51a52a53a54a55a56a57a58a59a60a61a62a63a64a65a66a67a68a69a70a71a72a73a74a75a76a77a78a79a80a81a82a83a84a85a86a87a88a89a90a91a92a93a94a95a96a97a98a99a100 

这是使得阵列的许多元件可以在同一时间在有限显示在命令窗口用于细胞字符串的缺省格式空间:

>> [B,B] 
ans = 
    'a1a2a3a4a5a6a7a8a9a10a11a12a1...' 'a1a2a3a4a5a6a7a8a9a10a11a12a1...' 
>> [B,B,B] 
ans = 
    'a1a2a3a4a5a6a7a8...' 'a1a2a3a4a5a6a7a8...' 'a1a2a3a4a5a6a7a8...' 

但是,所有的字符串都包含在单元格数组元素本身。大小的唯一限制是Matlab必须创建数组的内存量。

+0

你是对的!谢谢! – HeyMan