1.引用某个mat文件时
N_T = 32;
for nbeam = 1:5 % 码本层数
N_codeword = 2^nbeam;
filename_analog = ['Analog_Codebook_',num2str(N_T),'Antennas_',num2str(N_codeword),'Codewords.mat'];
end
这里的numstr()表示变化的量,当nbeam的变化从1-5时,N_codeword分别等于2,4,8,16,32,通过引号就可以引用到命令里作为变量了,结果分别为:
Analog_Codebook_32Antennas_2Codewords.mat
Analog_Codebook_32Antennas_4Codewords.mat
Analog_Codebook_32Antennas_8Codewords.mat
Analog_Codebook_32Antennas_16Codewords.mat
Analog_Codebook_32Antennas_32Codewords.mat
2.递增的变量命令
如:
eval['w_analog_',num2str(nbeam), '= w_analog(:,1).*exp(1i*2*pi*k*[0:N_T-1]''*sin(angle_vec))'];
这里想表达的是
w_analog_1= w_analog(:,1).exp(1i2pik*[0:N_T-1]'sin(angle_vec));
w_analog_2= w_analog(:,1).exp(1i2pik[0:N_T-1]‘sin(angle_vec));
w_analog_3= w_analog(:,1).exp(1i2pik[0:N_T-1]’*sin(angle_vec));
……
注意到这里的1,2,3的递增,用到了eval,eval的功能简单来说就是可以把字符串当做命令来执行
这里的递增替换还是用引号numstr带进来的,这里有一个要注意的点,就是[0:N_T-1]''这里加两个引号的原因,[0:N_T-1]‘一个引号表示共轭转置,所以两个’‘号中第一个’代表转义字符,意思是两个’'号中第二个’号为命令中的’号,不是用来分割字符串文本的
该篇博客介绍了MATLAB中如何使用num2str函数结合变量创建动态文件名,并利用eval进行递增变量命令的执行。内容涉及字符串拼接、变量的数值变化以及eval函数在代码中的应用,展示了在MATLAB编程中如何灵活处理字符串和变量。
2604

被折叠的 条评论
为什么被折叠?



