求助:Matlab这种分块矩阵怎么定义B=
A11 A12 ......A1n
A21 A22 ......A2n
...................
An1 An2 .......Ann
其中Aij 为方阵这个怎么定义
Aij都为10阶方阵用cell array(单元阵列)以及cell2mat()函数如:
n=8;
T=cell(n);%创建单元阵列T,n*n大小
for
i=1:n
for j=1:n
Aij=input(['please input matrix A' num2str(i) num2str(j)])
T{i,j}=Aij;
end
end
B=cell2mat(T)%将单元阵列转换为数值矩阵
%c = mat2cell(x, [10 20 30], [25 25])
5.二值化图像函数主要有dither和im2bw函数。
dither 函数通过颜色抖动来达到转换图像的目的。
语法:BW = dither(I)。 Image 是图像矩阵资料,BW 是二值化图像矩阵
im2bw 函数通过对灰度值进行阈值判断的方法达到目的。greater than level with the value
1 (white) and replaces all other pixels with the value 0 (black).
level是[0,1]之间,比它大的设为1白色,比它小的设为0黑色。或者
I = imread('coins.png');
level = graythresh(I);
BW = im2bw(I,level);
imshow(BW)
语法:BinaryImage = im2bw( Image, [Level] )。Image 是输入图像矩阵资料,Level 是二值化程度值,其为介于0到1之间值,BW 是二值化图像矩阵。
6.MATLAB读取一个文件夹中的所有文件
假如读取F盘English文件夹中的所有bmp图片:
Files = dir(strcat('F:\\english\\','*.bmp'));
LengthFiles =
length(Files);
for i = 1:LengthFiles;
Img =
imread(strcat('F:\english\',Files(i).name));
%自己写图像处理函数
ImgProc(Img);
end
或者:
path=cd;%获取当前文件路径
file=ls([path, '\*.txt']);%文件名
filepath=[path file];%合并路径及文件名
有了完整路径及文件名就可以打开文本了。
7.数据类型转换uint8(img)
8.终止运行; ctrl+c,终止调试shift+F5
9.imresize:按比例缩放图片。
reshape:改变矩阵形状
>> img = imread('Image_224.bmp');//480*640
>> im = reshape(img,[480*640 3]);
>> imm = reshape(im,[480 640 3]);
>> a = img - imm;
>> a=a(:);//全为0
10.matlab命令窗口显示相关小知识
1.命令窗口里,清屏命令:clc;
2.m文件里,清屏命令:clear;
3.如果要显示某个中间执行过程,不加分号(;)即可,如果不要显示某个中间过程,加分号(;)即可;
4.不要显示warning信息时,只需在m文件开头部分加warning off all;
5.matlab监测运行时间是m文件开头用tic,末尾用toc;
6.matlab监测运行时死循环暂停ctrl+c或者是ctrl+pause;
7.写一个与窗口显示无关的知识:matlab的函数名不一定要与.m文件的文件名一样,调用时以.m文件文件名为准,就算函数有参数,也以.m文件名为准;
11.saveas命令格式等四种,saveas(gcf,‘myfig.jpg’)
gcf是图形句柄,后面的名字可以带路径
下面是链接
12.一个比较杂的知识博客嘿嘿
13.把这些图片重叠在一起,并且与原先图片大小一样(经imread处理后是512x512的)
I=ones(512,512);
for i=0:9
for j=0:9
J=imread(['D:\MATLAB6p5\work\A01BMP\',int2str(i),int2str(i),'.bmp']);
I=I & J;
end
end
20121015
之一结束,开始之二