Matlab 如何在循环中定义变化的矩阵名

来自:    更新日期:早些时候
matlab中变量名称怎样定义可随循环次数变化~

按理讲应该是对的,但是可能原因是你对A(i)赋值是向量,这样的话之前要定义A为矩阵,如:zeros(n,m);
再循环中则表示为
for i=1:n
A(i,:)=……
end
或者你可以试试先赋值,循环前添加:A=zeros(1,n);
由于初学者的程序总是有一些小毛病,所以仔细是必须的,但这得靠自己,祝你好运!

你每次循环生成的值是什么形式——标量,向量,矩阵,或是不定?标量的情况最简单,如果是向量和矩阵,就要考虑你打算用什么样的形式存储了。

通常采用两种方法(以标量为例):

1、把新的结果存在下标为end+1的位置,数组会自动扩展,例如:
A=[]; for i=1:10, A(end+1)=i^2; end

2、预置数组(一般使用zeros),并设置一个计数器标记数组当前的存储位置,然后用该计数器作为下标进行存储。例如:
A=zeros(10000,1); idx=0; while idx<10000, idx=idx+1; A(idx)=idx^(1/idx); end

前一种做法用起来可能更省事一些,但如果循环次数多,数组反复自动扩展会造成效率很低,这种情况应该考虑使用第二种方法。

for i = 1 : ep结束后:
eval( [ 'epsilon_', num2str( nn ), ' = epsilon' ] );

for i = 1 : mp结束后:
eval( [ 'Nmet_', num2str( nn ), ' = Nmet' ] );

eval会把字符串当做一句代码去执行,内存中就有了epsilon_1、2、3....等变量了。


Matlab 如何在循环中定义变化的矩阵名视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网