在matlab中利用num2str如何使变量名递增?

在每一次的循环中,会计算得到一个矩阵P,我想把在第1、2、3、...循环得到的矩阵P命名为Matrix1、Matrix2、Matrix3、...,请问如何实现?我的代码如... 在每一次的循环中,会计算得到一个矩阵P,我想把在第1、2、3、...循环得到的矩阵P命名为Matrix1、Matrix2、Matrix3、...,请问如何实现?

我的代码如下:

for c=1:10
P=...%这里P的计算太繁琐,我就省略了
str=num2str(c);
Matrix('str')=P;
end

MATLAB报错说,在每一次循环中Matrix的尺寸都在变化,求大神指点!
展开
 我来答
百度网友3c63e6c
2015-03-10 · TA获得超过2848个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2777万
展开全部
你试试下面的
for c=1:10
P=...%这里P的计算太繁琐,我就省略了
str=num2str(c);

stater = ['Matrix',str,'=P;']
eval(stater);
end
更多追问追答
追问
好像不太对耶,报错说:Unbalanced or unexpected parenthesis or bracket.
追答
你放在m文件中运行,然后看是哪一句提示的这个错误
低调侃大山
推荐于2018-04-12 · 家事,国事,天下事,关注所有事。
低调侃大山
采纳数:67731 获赞数:374598

向TA提问 私信TA
展开全部
  函数功能:
把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出。在matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息。  
语法格式:
  str = num2str(A)
  把数组A中的数转换成字符串表示形式。
  str = num2str(A, precision)
  把数组A转换成字符串形式表示,precision表示精度, 比如precision为3表示保留最多3位有效数字, 例如0.5345转换后为0.534,1.2345转换后为1.23。即从左边第一个不为0的数开始保留3个数值。
  str = num2str(A, format)
  按format指定格式进行格式化转换,通常'%11.4g'是默认的。
相关函数:
mat2str, int2str, str2num, sprintf, fprintf
应用举例:
  >> A = [1, 2, 3];
  >> B = num2str(A);
  >> fprintf('%s', B)
  1 2 3>>
  >> C = [1.564, 0.12345];
  >> D = num2str(C, 3)
  D =
  1.56 0.123
  >> D = int32(1)
  D =
  1
  >> num2str(D, '%.6f')
  ans =
  1.000000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式