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]‘一个引号表示共轭转置,所以两个’‘号中第一个’代表转义字符,意思是两个’'号中第二个’号为命令中的’号,不是用来分割字符串文本的