train_x = double(train_x)/255; train_x=BoundMirrorExpand(train_x); %延拓 test_x = double(test_x)/255; test_x=BoundMirrorExpand(test_x); %延拓 train_y = double(train_y); test_y = double(test_y);
时间: 2023-08-18 14:20:13 浏览: 159
这是一个MATLAB程序中的一行代码,用于对训练数据和测试数据进行归一化处理和边界扩展。首先,程序将train_x和test_x中的数据类型转换为双精度型,并将像素值除以255,以实现图像数据的归一化。接着,程序调用BoundMirrorExpand函数对train_x和test_x进行边界扩展处理,以增加数据量和提高模型的鲁棒性。最后,程序将train_y和test_y的数据类型转换为双精度型。
相关问题
C_reshape = reshape(C,length(M)+3,2).';为什么+3
这里使用了长度为N的卷积编码器,其中N为生成矢量G的列数。在进行卷积编码时,为了保证输出序列的正确性,需要将输入序列进行延拓,即在序列的头尾各添加N-1个0。这样,每个码元就能够进行N次编码,保证输出序列的正确性。
对于输入序列M=[1 1 0 0 1 0 1 1],在头尾各添加2个0,即在序列的头部添加[0 0],在序列的尾部添加[0 0],得到长度为12的序列[M_add0]=[0 0 1 1 0 0 1 0 1 1 0 0 0 0]。
在进行卷积编码时,每个码元都需要进行N次编码,而每次编码都会产生N个输出符号。因此,卷积编码后的输出序列长度为N*(len+N-1),其中len为输入序列M的长度。在本例中,N=3,len=8,因此卷积编码后的输出序列长度为3*(8+3-1)=33。
最终,C_reshape应该是一个2行17列的矩阵,每行包含16个卷积码符号和1个多余符号。因此,对C进行reshape操作时,需要将长度设置为len+N,并添加1个多余符号。即reshape(C,length(M)+3,2)。
阅读全文