包含matlabcdata的词条

http://www.itjxue.com  2023-01-27 13:03  来源:未知  点击次数: 

如何在MATLAB中导出矢量图

解决方法:

uimenufcn(gcf,'EditCopyFigure')

与直接使用菜单命令Edit -- Copy Figure在绝大多数情况下并没有区别,事实上,该菜单回调函数大致如下(不同版本可能会有细微差别):

if (ismac ~isempty(get(hfig, 'JavaFrame')))

% get the figure bits into an image

% To Do - use hardcopy or print instead

data = getframe(hfig);

cda = data.cdata;

% put the image onto the clipboard

im = im2java(cda);

jm = javax.swing.ImageIcon(im);

im_obj = jm.getImage;

cb = java.awt.Toolkit.getDefaultToolkit.getSystemClipboard;

cb.setContents(com.mathworks.hg.util.ImageSelection(im_obj),[]);

%disp('tried to copy to clipboard')

else

uimenufcn(hfig, 'EditCopyFigure')

end

前面if分支的那一大堆代码都是对于MAC平台的,对于多数使用Windows的朋友,就是后面else分支的那一句而已。

接下来,我重点要说的问题就是,上面的方法并不能保证导出的是矢量图。这是因为,在上面说到的Copy Figure菜单后面,还有一个〖Copy Options...〗菜单,用于设置导出图形的选项:

默认选项是Preserve information,即由MATLAB自动决定使用何种格式(在可能的情况下优先使用矢量图)。

那么,现在有两个问题:

(1)如果你在这里的选择是Bitmap,用上面的命令还能导出矢量图吗?答案当然是否定的(不信的话,不妨自己验证一下);

(2)如果按照默认的选项(Preserve information),试一试

peaks;

set(findall(gcf,'type','surface'),'facealpha',0.4)

uimenufcn(gcf,'EditCopyFigure')

再贴到Word里看看,是不是矢量图?

关于eps格式:很多学术期刊对图片的要求是这种格式,但EPS格式在word中显示并不正常(通常看起来比较粗糙,但如果转换成pdf文件则能正常显示)。这个问题我之前研究过,但并不深入,有些问题解决的也不彻底,就不多说了。

请问各位高手,如何用matlab画地球模型,最好带有经纬线的那种!非常感谢!

2010b帮助:

Mapping Toolbox\User's Guide\Map Projections Reference\Globe

Graticule

This map display is not a true map projection. It is constructed by calculating a three-dimensional frame and displaying the map objects on the surface of this frame.

Features

In the three-dimensional sense, globe is true in scale, equal-area, conformal, minimum error, and equidistant everywhere. When displayed, however, it looks like an Orthographic azimuthal projection, provided that the MATLAB axes Projection property is set to 'orthographic'.

Remarks

This is the only three-dimensional representation provided for display. Unless some other display purpose requires three dimensions, the Orthographic projection's display is equivalent.

=========================================

Example

% Set up axes

axesm ('globe','Grid', 'on');

view(60,60)

axis off

% Display a surface

load geoid

meshm(geoid, geoidrefvec)

% Display coastline vectors

load coast

plotm(lat, long)

=========================================

上面那个是线框模式有经纬示意

下面这个是地形彩色图,没线

没用过mapping工具箱,估计你要的功能都可以完美实现

如果有专门的相关书籍可以参考,没的话自己把该工具箱帮助好好看看

=========================================

帮助中的主题:Earth's Topography

load('topo.mat','topo','topomap1');

[x,y,z] = sphere(50);

cla reset

axis square off

props.AmbientStrength = 0.1;

props.DiffuseStrength = 1;

props.SpecularColorReflectance = .5;

props.SpecularExponent = 20;

props.SpecularStrength = 1;

props.FaceColor= 'texture';

props.EdgeColor = 'none';

props.FaceLighting = 'phong';

props.Cdata = topo;

surface(x,y,z,props);

light('position',[-1 0 1]);

light('position',[-1.5 0.5 -0.5], 'color', [.6 .2 .2]);

view(3)

MATLAB 怎么给柱状图加数据标签

方法和详细的操作步骤如下:

1、第一步,双击以打开matlab应用程序,然后可以在命令行窗口中输入代码,见下图,转到下面的步骤。

2、第二步,执行完上面的操作之后,根据下图的代码进行编辑,见下图,转到下面的步骤。

3、第三步,执行完上面的操作之后,继续输入代码,即可获得图形名称,见下图,转到下面的步骤。

4、第四步,执行完上面的操作之后,继续输入代码,可以在旁边的x或y或z轴上添加标签,见下图,转到下面的步骤。

5、第五步,执行完上面的操作之后,在代码下方的图片中输入代码,可以将所需的标签名称添加到(x,y)点或(x,y,z)点,见下图,转到下面的步骤。

6、第六步,执行完上面的操作之后,在其中添加图例标注,命令格式为::legend(‘标注1’,‘标注2’,...),其功能是用图例标记当前图形,见下图。这样,就解决了这个问题了。

matlab车流统计,急啊,麻烦大家

mov=aviread('xxxxxxxx.AVI');

temp=size(mov);

fnum=temp(2);

for i=1:fnum,

strtemp=strcat(int2str(i),'.','JPG');

imwrite(mov(i).cdata(:,:,:),strtemp);

end%% 从视频中提出每一帧图像

o=1;

e='.jpg';

for i=1:15

u=o-1;v=o-2;

m=int2str(o);

n=int2str(u);h=int2str(v);

s=strcat(m,e);%%把字符串b与m连接后在连接e得到图像文件存储的位置

m=imread(s);%%从S处把图像读取出来

m=rgb2gray(m);%%将图像M灰度化

m=medfilt2(m,[3,3]);

if(o=3)

s=strcat(n,e);

n=imread(s);

n=rgb2gray(n);

s=strcat(h,e);

h=imread(s);

h=rgb2gray(h);

n=medfilt2(n,[3,3]);

h=medfilt2(h,[3,3]);

q=im2double(m);%%将图像数组转换为double型

w=im2double(n); g=im2double(h);

c=q-w;j=w-g;

th=10/255;

k=find(abs(c)=th);

c(k)=1;

k=find(abs(c)th);

c(k)=0;

c=bwareaopen(c,15);

se90=strel ('line',3,90);se0=strel ('line',3,0);

c=bwmorph(c,'close'); %对上述图像进行形态学闭运算

c=imdilate(c,[se90,se0]);c=bwmorph(c,'close');

c=bwareaopen(c,50);

k=find(abs(j)=th);

j(k)=1;

k=find(abs(j)th);

j(k)=0;

j=bwareaopen(j,15);

j=bwmorph(j,'close'); %对上述图像进行形态学闭运算

j=imdilate(j,[se90,se0]);j=bwmorph(j,'close');

c=bwareaopen(c,50);

c=cj;c=imerode(c,[se90,se0]);

figure,imshow(c);

a=c;b=c; d=c;f=c;

[m,n]=size(c);

%%行扫描填充

for i=1:m

for j=1:n-1

if a(i,j)0

a(i,j+1)=1;

end

end

end

for i=1:m

for j=n:-1:2

if b(i,j)0

b(i,j-1)=1;

end

end

end

th=ab;

%%列扫描填充

for i=1:n

for j=1:m-1

if d(j,i)0

d(j+1,i)=1;

end

end

end

for i=1:n

for j=m:-1:2

if f(j,i)0

f(j-1,i)=1;

end

end

end

td=df;

c=thtd;

end

o=o+1;

end

matlab 怎么画一系列不同颜色点,点的颜色反映的是值的大小

1、首先在matlab软件新建一个m文件,然后在m文件的窗口中输入一个正弦函数的图形代码。

2、这时候,按下matlab上面的那个run绿色按钮运行这些代码,就可以产生一个周期的正弦函数图形窗口。

3、要在这个正弦函数的图形窗口上标记特殊点,要找到正弦函数最高点的位置。

4、可以利用代码:text(x(p_max),y(p_max),'o','color','g'),其中这里o表示标注的形状,,'g'表示的是颜色,[x(p_max),y(p_max)]就是表示你要找的目标点。

5、这时候可以在原来的m文件代码后面加入找目标点的代码,然后再次点击上面的run按钮运行一下即可看到加的点。

请matlab大神给一个视频分帧代码,不会的请别复制百度上的了,我用过了,在matlab上运行不了

clc

xyloObj = mmreader('large_render_outcomes_frontend.avi');

xyloObj1 = mmreader('large_render_outcomes_frontend.avi');

nFrames = xyloObj.NumberOfFrames;

vidHeight = xyloObj.Height;

vidWidth = xyloObj.Width;

% Preallocate movie structure.

mov(1:nFrames) = ...

struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),...

'colormap', []);

mov1(1:nFrames) = ...

struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),...

'colormap', []);

I1 = read(xyloObj, 1);

I2 = read(xyloObj1, 3);

imwrite(I1,'large1.jpg');

imwrite(I2,'large2.jpg');

这段代码可以用来分取一个视频的前两帧,但是记住一定要把视频(avi格式)放在文件夹内,放错了文件夹可是提不出来的。

如果需要提取多帧,自己加个循环就好了

(责任编辑:IT教学网)

更多

推荐Oracle文章