麻烦帮我改改这个My_bar3的程序【附代码】
程序的功能是输入一个矩阵,矩阵大小在【0,1】要绘制类似这样的立方图:我的程序直接是从Matlab里面拷出来的,不好使,经常有这样的错误:Warning: size(CData) must equal size(ZData) or size(ZData)-1 for flat shading
Warning: size(CData) must equal size(ZData) or size(ZData)-1 for flat shading
Warning: size(CData) must equal size(ZData) or size(ZData)-1 for flat shading
Warning: size(CData) must equal size(ZData) or size(ZData)-1 for flat shading
Warning: size(CData) must equal size(ZData) or size(ZData)-1 for flat shading
Warning: size(CData) must equal size(ZData) or size(ZData)-1 for flat shading
Warning: size(CData) must equal size(ZData) or size(ZData)-1 for flat shading
源代码:%=======================================function Success=My_bar3(Z,varargin)
%% function to draw bar3, from matlab codes.
% format: Success=My_bar3(Z,'Yes');% format:Success=My_bar(Z);
%% if nargin==1
Request_Shading='No';
else
Request_Shading=varargin{1};
end
=size(Z);
h = bar3(Z);
for i = 1:length(h)
zdata = ones(6*length(h),4);
k = 1;
for j = 0:6:(6*m-6)
zdata(j+1:j+6,:) = Z(k,i);
k = k+1;
end
set(h(i),'Cdata',zdata)
end
colormap cool
colorbar
if strcmp(Request_Shading,'Yes')
shading interp
for i = 1:length(h)
zdata = get(h(i),'Zdata');
set(h(i),'Cdata',zdata)
set(h,'EdgeColor','k')
end
end
Success='Yes';
end
%=======================================
So many thanks!
是warning不是错误 chybeyond 发表于 2013-9-15 09:20 static/image/common/back.gif
是warning不是错误
可是出了warning就没有结果。 个人水平有限, 没遇过, 所以没经验
没资料, 所以也没得试/学习
同待有经验的高人路过 ChaChing 发表于 2013-9-16 00:06 static/image/common/back.gif
个人水平有限, 没遇过, 所以没经验
没资料, 所以也没得试/学习
同待有经验的高人路过
不管怎样,我要感谢Chaching的热心帮助!上振动联盟,得到了你好多帮助!你是咱们坛友的福气,我们的榜样! 本帖最后由 ChaChing 于 2013-9-16 15:02 编辑
mxlzhenzhu 发表于 2013-9-16 00:43 http://forum.chinavib.com/static/image/common/back.gif
不管怎样,我要感谢Chaching的热心帮助!上振动联盟,得到了你好多帮助!你是咱们坛友的福气,我们的榜样! ...
刚使用下式试了下, 没报警! (R2009a)
Y=cool(7); My_bar3(Y,'Yes')
确认了我先前的猜测, 这报警应该是输入造成
所以若不知楼主输入, 可能无法知道原因
ChaChing 发表于 2013-9-16 15:00 static/image/common/back.gif
刚使用下式试了下, 没报警! (R2009a)
确认了我先前的猜测, 这报警应该是输入造成
所以若不知楼主输入,...
有的时候会报警;你尝试改变矩阵M X N的大小就知道了。 经调试,发现你初始化zdata时其纬度搞错了,给你修改后,无任何警告了。修改后代码如下所示:function Success=My_bar3(Z,varargin)
%% function to draw bar3, from matlab codes.
% format: Success=My_bar3(Z,'Yes');
% format:Success=My_bar(Z);
%%
if nargin==1
Request_Shading='No';
else
Request_Shading=varargin{1};
end
=size(Z);
h = bar3(Z);
for i = 1:length(h)
zdata = ones(6*m,4); %你原来的是zdata = ones(6*length(h),4),实际length(h)是和n相等的;
k = 1;
for j = 0:6:(6*m-6)
zdata(j+1:j+6,:) = Z(k,i);
k = k+1;
end
set(h(i),'Cdata',zdata)
end
colormap cool
colorbar
if strcmp(Request_Shading,'Yes')
shading interp
for i = 1:length(h)
zdata = get(h(i),'Zdata');
set(h(i),'Cdata',zdata)
set(h,'EdgeColor','k')
end
end
Success='Yes';
end
那天试了下,没试出warning! 改变几次大小也没成
老实话, 没花时间细看LZ的程序
经LS提醒, 才晓得自已试的问题-总是m>nY = cool(70); Y=reshape(Y,21,10); My_bar3(Y,'Yes')
Y = cool(70); Y=reshape(Y,10,21); My_bar3(Y,'Yes')第二个会出warning, 第一个因为zdata会resize所以不会 ChaChing 发表于 2013-9-20 23:51 static/image/common/back.gif
那天试了下,没试出warning! 改变几次大小也没成
老实话, 没花时间细看LZ的程序
经LS提醒, 才晓得自已试的 ...
ChaChing,我敬礼了! mxlzhenzhu 发表于 2013-9-21 16:36 static/image/common/back.gif
ChaChing,我敬礼了!
不是谢我, 应该谢江树空大侠才对!
个人只不过是没如此用过跟著LZ学习吧了 ChaChing 发表于 2013-9-21 19:03 static/image/common/back.gif
不是谢我, 应该谢江树空大侠才对!
个人只不过是没如此用过跟著LZ学习吧了
呵呵,大侠不敢当,愿为各位同仁尽绵薄之力,实际也是向大家学习
页:
[1]