gpt4 book ai didi

arrays - 如何用递增的数字初始化元胞数组

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:21 27 4
gpt4 key购买 nike

我如何初始化一个数字递增的元胞数组?对于一个简单的数组,我可以执行以下操作:

A = [1:0.0001:1.1]

元胞数组的等价物是什么?我如何获得:

A = {'1', '1.0001', '1.0002', '1.0003', '1.0004', ...}

编辑:

这是我到目前为止尝试过的:

cellfun(@(x) num2str(str2double(x)+0.0001), repmat({'1'},1,21), 'UniformOutput', false)

然而,这给出了:

{'1.0001', '1.0001', '1.0001',...}

最佳答案

有一个名为 sprintfc 的很酷的未记录函数可以打印到元胞数组:

An = 1:0.0001:1.1;
As = sprintfc('%g',An)

例子:

>> A = sprintfc('%g',0:0.2:1)
A =
'0' '0.2' '0.4' '0.6' '0.8' '1'
>> which sprintfc
built-in (undocumented)

sprintfc 最近在 undocumentedmatlab.com 上突出显示. Yair Altman 的又一个伟大发现。接下来是其他一些可能性。


对于数值,使用num2cell:

A = num2cell(An)

对于字符串表示:

A = strsplit(num2str(An))

你也可以使用cellfun:

A = cellfun(@num2str,num2cell(An),'uni',0)

或者只是arrayfun,其实更简单:

A = arrayfun(@num2str,An,'uni',false)

关于arrays - 如何用递增的数字初始化元胞数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551577/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com