在Octave中遇到num2str
函数问题。
我的代码:
>> alpha = zeros(1,length(alpha));
>> legendInfo = zeros(1,length(alpha));
>> legendInfo(1) = num2str(alpha(1));
错误消息:
错误:A(I)= X:X必须与I
具有相同的大小
我一直试图按照此链接无效:Link
更新
根据建议,我已实现以下代码并收到以下错误消息:
>> labelInfo = cell(1,numel(alpha))
>> labelInfo{1} = num2str(alpha{1});
错误:无法使用{
索引矩阵错误:评估参数列表元素编号1
ANSWER
通过一次调整提供的答案是准确的:
alpha{1}
(语法不正确)alpha(1)
(正确的语法)Parantheses而不是花括号。
谢谢!
答案 0 :(得分:4)
您已将legendInfo
初始化为数字数组,其大小与alpha
相同。当您将alpha(1)
转换为字符串时,它可能超过1个字符长(即alpha(1) > 9
),这显然不适合数组中的单个元素。
length(num2str(10))
% 2
length(legendInfo(1))
% 1
此外,即使num2str(alpha(1))
产生一个长度为1的字符串,它也会隐式地将其转换为一个数字(它的ASCII表示),这可能不是你想要的。
legendInfo = zeros(1, numel(alpha));
legendInfo(1) = num2str(1);
% 49 0 0
您可能希望单元格数组保存图例信息,而不是数字数组,因为您将拥有不同长度的字符串。
legendInfo = cell(1, numel(alpha));
legendInfo{1} = num2str(alpha{1});
如果仔细查看已关联的帖子,您会看到他们使用大括号{}
执行分配而不是括号()
,表示他们正在创建单元格数组