一、写文件
- 效果和矩阵x一样(最佳)
dlmwrite('lll.txt', x, 'delimiter', ' ', 'newline', 'pc');
- 适合一维数据存储
% csvwrite('lll.txt', x);
- 科学记数法
save('lll.txt','x','-ascii');
- 原始方式(和C相比,更方便地写一维数据)
fid = fopen('n_msg_bits.txt','w');
fprintf (fid,'%d ',n_msg_bits);
fclose (fid);
- 以二进制方式写入文本
frr = fopen('extr_msg.txt', 'a' ) ; fwrite(frr, extr_msg, 'ubit1') ; % extr_msg是0/1数组 fclose(frr);
二、读文件
- %多种分隔符读取数字
y = load('lll.txt');
- 以二进制方式读取文本
f_id = fopen( 'msg.txt', "r") ; [msg,len] = fread( f_id, 'ubit1'); msg = uint8(msg)'; fclose(f_id);
三、数组元素替换
对于a=[12 4 5 6 0 12 0];
b=find(a==0);
或b=logical(a==0);
a(b)=8;
a(a==0)=8;
- 替换NaN:
isnan(a)
代替方法1中的find(a==x);
注:以上方法仅适用于普通矩阵,不适用于元胞数组
四、矩阵操作
- 一维->二维,dlmwrite以矩阵形式保存
a=[1,2,3,4,5,6,7,8,9,10]; a = reshape(a,[2,5])' % 一维->二维 得到(5,2) size(a) dlmwrite('aaaa.txt', a, 'delimiter',' ');
- 一些element-wise操作
a = a(:,1:5) b = zeros(1,3); a = [a, b] len = size(c,2); cover = 1-cover cover = cover'; cover = cover(:)'; cover = cover ./ 2; cover = log(9 ./cover - 1); cover_len = 10 costs = zeros(3, cover_len, 'single'); costs(3,:) = rou
- 其他
clc; %清屏 x = [ 1 2 3; 4 5 6 ; 7 8 9 ]; costs([1 3],1:n) = x([2 3],1:n); % 用x的2、3行,1到n列来替换costs的1、3行,1到n列。 S4_1 = S4(1:159,:); S4_1 = fliplr(S4_1); %倒序(注意不是从大到小,只是反转原来的顺序) S4_2 = S4(160:1000,:); S4 = [S4_1;S4_2]; %行拼接 S4 = [S4_1,S4_2]; %列拼接 S = S'; %转置 S = string(S); %转化为字符串 S = cellstr(S); %转化为元胞数组 rd = randperm(N); % 生成1到N随机数(闭区间) B = B(~ismember(B,b)); % B中去掉b元素 msg = uint8(unifrnd(0,1,[1,m])); % generate m random message bits
五、检查是哪一个文件不存在
% fileFolder=fullfile('本机文件夹路径');
% dirOutput=dir(fullfile(fileFolder,'*.aac'));
% fileNames={dirOutput.name};
addpath('文件夹所在的全路径');
for i=1:1000
str_i = num2str(i); %数字转字符
stego_name = strcat(str_i,'-Tf-128.wav'); %字符串拼接
print(stego_name);
end
注意:适用于命名有规律的文件
六、批量裁剪图像
- 转自这里(比格式工厂、PS什么的方便的多!)
file_path = 'D:\goland\PyCharm project\HiDDeN-master\data\裁剪前\'; % 设定你存放图片的目录 img_path_list = dir(strcat(file_path, '*.jpg')); % 选后缀为 .jpg 的图片 img_num = length(img_path_list); %获得图片数量 for j = 1:img_num image_name = img_path_list(j).name; image = imread(strcat(file_path, image_name)); crop_image = imcrop(image, [0,0,128,128]); % imcrop() 函数第二个参数的格式为[XMIN YMIN WIDTH HEIGHT] % 裁剪方式是:指定左上角、需要裁剪的宽和高 imwrite(crop_image, strcat('D:\goland\PyCharm project\HiDDeN-master\data\裁剪后\', image_name)); % 保存文件 end
七、读取音频
[y,Fs] = audioread(filename) 从名为 filename 的文件中读取数据,并返回样本数据y(单声道y是一列,双声道则是2列)以及该数据的采样率Fs。
八、.m –> .exe
mcc -m [文件名]
九、类型转换
- 字符串->浮点数
d = str2double(input);
例如:function lt_tests(input) clc; d = str2double(input); % 字符串->整数 e = 1/d; fprintf('%f',e); end
十、对比两个数组是否相同
- 方法1,
if all(array1==array2)
a=[1,2,3,4,5,6,7,8,9,10]; b=[1,2,3,4,5,6,7,8,9,10]; if all(a==b) fprintf('success'); else fprintf('fail'); end
- 方法2
i = 1; while i <= 10 && a1(i)==a2(i) i=i+1; end if i ~=11 fprintf('fail'); else fprintf('success'); end
十一、绘图
- 3D
[X,Y] = meshgrid(-2:.1:2, -4:.2:4); % 0.1 0.2控制网格的稀疏 Z = X .* exp(-X.^2 - Y.^2); mesh(X,Y,Z)
十二、处理图像
a = imread('D:\2-代码工程\PycharmProjects\GLOW\BOSSbase_1.01\1.pgm');
imshow(a);
fprintf = ("%d",var);
其他
- 随机序列生成 ` msg = uint8(rand(1,m)); % 随机消息`
- 将特定变量保存为.mat。加载.mat。
save msg.mat msg load msg;
-
积分
trapz( X, Y ); % X 是 横坐标,Y是 对应的函数值
-
按 第column列的升序 对 A 的行进行排序。 B = sortrows(A) B = sortrows(A,column)
- 删除 窗口绘图
- clf(figure(1)) % 窗口还在,图形+坐标系,都没了。
- delete(figure(1)) % 窗口 直接关闭了