matlab变量的名字中含有规律的数字的定义

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(1i2
pik[0:N_T-1]‘sin(angle_vec));
w_analog_3= w_analog(:,1).exp(1i2
pik[0:N_T-1]’*sin(angle_vec));
……
注意到这里的1,2,3的递增,用到了eval,eval的功能简单来说就是可以把字符串当做命令来执行
这里的递增替换还是用引号numstr带进来的,这里有一个要注意的点,就是[0:N_T-1]''这里加两个引号的原因,[0:N_T-1]‘一个引号表示共轭转置,所以两个’‘号中第一个’代表转义字符,意思是两个’'号中第二个’号为命令中的’号,不是用来分割字符串文本的


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部