请教matlab动态更新三维图的问题.一个列数很大的二维矩阵(比如10000列.这里行数不重要,故不提),要实现只显示一定数目的列(比如只显示1000列),要滚动显示.意思是:从第一列开始显示,每

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/17 06:46:21
请教matlab动态更新三维图的问题.一个列数很大的二维矩阵(比如10000列.这里行数不重要,故不提),要实现只显示一定数目的列(比如只显示1000列),要滚动显示.意思是:从第一列开始显示,每请教

请教matlab动态更新三维图的问题.一个列数很大的二维矩阵(比如10000列.这里行数不重要,故不提),要实现只显示一定数目的列(比如只显示1000列),要滚动显示.意思是:从第一列开始显示,每
请教matlab动态更新三维图的问题.
一个列数很大的二维矩阵(比如10000列.这里行数不重要,故不提),要实现只显示一定数目的列(比如只显示1000列),要滚动显示.意思是:从第一列开始显示,每次绘制一列,直到绘制到1000列,然后第1001列绘制到图像的第一列,即整幅图像又从最左边开始绘制,覆盖原来的图像,每次绘制一列,直到绘制到第2000列.,如此循环,要将原矩阵绘制完,也就是滚动显示图像.
现有的方案是,每次都重绘1000列的图像,也就是每次滚动地取10000列里面的1000列,然后画图(imagesc),这样速度很慢,想问下有没有可能每次不需要重新绘制整幅图像,而是只绘制一列的呢?这样也许就能使速度加快很多.
附:现在的程序代码
clear,clc
y1= 100*randn(1,100000);
len = length(y1);
init_point = 1;
n_points = 9;
L = 256;
fft_times = floor((len-L)/n_points+1); % 总变换次数
fft_display = 1000;
N = 512;
f = 4000*linspace(0,1,N+1);
t_tick = 2e-3;
z_f = zeros(N,fft_times);
z_f_display = zeros(N/2+1,fft_display);
for i=1:fft_times
i
data = y1(init_point+(i-1)*n_points:init_point+(i-1)*n_points+L-1); % 每次取数据
z_f(:,i) = fft(data,N); % 频谱,每一列都是一次变换
z_f(:,i) = abs(z_f(:,i));
if i

请教matlab动态更新三维图的问题.一个列数很大的二维矩阵(比如10000列.这里行数不重要,故不提),要实现只显示一定数目的列(比如只显示1000列),要滚动显示.意思是:从第一列开始显示,每
不知可否满足要求
运行环境:MATLAB2013a,win 8 Pro,CPU:赛扬 双核1.6GHz,内存:2*2G.楼主配置应该比我的好点,试试吧,好运.
clear,clc,close
y1= 100*randn(1,100000);
len = length(y1);
init_point = 1;
n_points = 9;
L = 256;
fft_times = floor((len-L)/n_points+1); % 总变换次数
fft_display = 1000;
N = 512;
f = 4000*linspace(0,1,N+1);
t_tick = 2e-3;
z_f = zeros(N,fft_times);
z_f_display = zeros(N/2+1,fft_display);
for i=1:fft_times
% i=3
temp=init_point+(i-1)*n_points;
data = y1(temp:temp+L-1); % 每次取数据
z_f(:,i) = fft(data,N); % 频谱,每一列都是一次变换
end
z_f=abs(z_f);
%% 将绘图部分和计算部分隔离,可以减少因计算而产生的延迟
figure;
for i=1:fft_times
display=zeros(size(z_f));
display(:,1:i)=z_f(:,1:i);
k = floor( i/fft_display);
if ~k
z_f_display = display(1:N/2+1,1:fft_display);
else
z_f_display = display(1:N/2+1,[k*fft_display+1:i,(k-1)*fft_display+mod(i,fft_display)+1:k*fft_display]);
end
imagesc((1:fft_display)*t_tick,f(1:N/2+1),z_f_display(1:N/2+1,:));
xlabel('/s');
ylabel('Hz');
axis xy;
colormap(gray);
pause(0.000001);
end

请教matlab动态更新三维图的问题.一个列数很大的二维矩阵(比如10000列.这里行数不重要,故不提),要实现只显示一定数目的列(比如只显示1000列),要滚动显示.意思是:从第一列开始显示,每 matlab三维绘图问题想请教这样的三维图怎么画啊,已经知道x与z的关系函数了.能用一个简单的例子说明下就可以了 MATLAB三维作图问题0.5 请教matlab三维绘图的问题,我想在一个坐标系里显示两个函数的三维图像,该怎么弄啊,比如f1=xy,f2=3xy,具体代码怎么写? matlab绘制一分段函数三维图当0 想请教一个关于matlab画三维曲面图的问题使用matlab画曲面图的问题:我这里有三组数据:x=[3,5.05,6.7,8.8,10.1,11.8,14.33,16.64,17.7,20,21.5,24.8,26.8,28.3,30.8,32.7,35.1,36.8,39.7,41.3,43.4,45,49.1,50.9,54.1,56.5,58.8,60 MATLAB中三维坐标系的转换问题:已知一维数组a=x+y;b=x-y ;二维数组z.如何转换成x y坐标系现在画出的是z关于a,b坐标系的三维图现在我想画出z关于x,y坐标系的三维图 Matlab如何画动态图 matlab三维制图曲面图 怎样用matlab编写桌子的动态变化图 matlab画三维立体图我想把这个表画成三维的图,/> 如何用matlab画下式所表示的三维图 请教一个matlab的问题,由一个m×n二维矩阵A[m×n],如何由矩阵画出三维图形就是以矩阵的行号和列号为横纵坐标,以矩阵中对应的数值为竖坐标,画出三维图形.对matlab还没有入门,请高手指教. 我有一个matlab的问题想请教下你,你曾经在“知道”给别人画过一个三维的图形,我照了做了下是曲线到底怎么回事啊 matlab中有没有提取三维矩阵中的一维的函数?A是一个三维矩阵A(:,:, matlab请教a=0~2,b=0~π/6,x=10*a^2,y=5*a*cosb,z^2=x^2+y^2.怎么用matlab做出z的三维图? 请教matlab中矩阵某元素个数的编程问题 请教matlab函数plot画点的问题