找回密码
 注册
Simdroid-非首页
查看: 155|回复: 12

GUI编程计算输出(sprintf)出错!

[复制链接]
发表于 2009-11-18 09:31:55 | 显示全部楼层 |阅读模式 来自 河南郑州
本帖最后由 messenger 于 2009-11-18 15:47 编辑

我在gui编程中,识别edit中的数值进行计算,把计算结果输出到excel中,这个步骤现在都可以完成;现在遇到的问题是当我利用xlsread读入数据到edit框中后,再点击计算,出现如下错误,请高手判断一下是什么原因?
??? Error using ==> sprintf
Function is not defined for 'cell' inputs.
Error in ==> JS_DBG>JSJGSC_Callback at 942
xlswrite(sprintf('%s%s',ZJXH,'计算结果'),hh,'sheet1','A2');
Error in ==> gui_mainfcn at 75
        feval(varargin{:});
Error in ==> JS_DBG at 44
    gui_mainfcn(gui_State, varargin{:});
??? Error while evaluating uicontrol Callback.
先表示一下感激之情,谢谢!


是不是因为用了sprintf的原因,当我把sprintf('%s%s',ZJXH,'计算结果')修改为确定的文件名时就没有这个问题!但我希望输出的结果文件可以自动识别edit中的字符,有没有一种方法可以达到次目的,高手不吝赐教啊!
发表于 2009-11-18 12:57:18 | 显示全部楼层 来自 北京
Simdroid开发平台
把多一点的代码贴上来,这样便于别人调试
如果单纯看这一句,而大家又没有这方面体验的话
很难给出准确的回答
回复 不支持

使用道具 举报

发表于 2009-11-18 13:33:00 | 显示全部楼层 来自 重庆
Function is not defined for 'cell' inputs.
Error in ==> JS_DBG>JSJGSC_Callback at 942
xlswrite(sprintf('%s%s',ZJXH,'计算结果'),hh,'sheet1','A2');

----------------------
你的 zjxh 是cell 变量,sprintf不能直接接受cell 变量
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-18 14:20:19 | 显示全部楼层 来自 河南郑州
3# 风天小畜
ZJXH是识别edit编辑框的字符,本例中是SG96,做这个的目的就是为了使输出结果到excel中时文件名就是'SG96计算结果',初始化的数据这是可以的啊!
问题是当我利用xlsread从excel中导入参数到edit编辑框后(即edit编辑框中初始化的数据被excel中的数据覆盖后,包括ZJXH修改为SG99)同样的程序会出现上面的错误?
高手有时间帮看看!谢谢
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-18 14:21:35 | 显示全部楼层 来自 河南郑州
3# 风天小畜
有没有什么处理方法?谢谢
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-18 14:23:04 | 显示全部楼层 来自 河南郑州
2# ljelly
我的是gui做的,你需要什么可以告诉我!谢谢帮忙?
回复 不支持

使用道具 举报

发表于 2009-11-18 14:53:29 | 显示全部楼层 来自 重庆
3# 风天小畜  
ZJXH是识别edit编辑框的字符,本例中是SG96,做这个的目的就是为了使输出结果到excel中时文件名就是'SG96计算结果',初始化的数据这是可以的啊!
问题是当我利用xlsread从excel中导入参数到edit编辑 ...
昨日的风 发表于 2009-11-18 14:20


既然ZJXH,是个cell变量,里面存着字符,
那么,你就需要  ZJXH{index},这个,index就是你需要引用的变量值的索引

假设,你的ZJXH={‘SG96’},那么,如下
xlswrite(sprintf('%s%s',ZJXH{1},'计算结果'),hh,'sheet1','A2');


你提问题,最好,把涉及的相关的代码及其变量说明,一并附上来,可以贴在附件
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-18 15:43:20 | 显示全部楼层 来自 河南郑州
我试了一下,利用楼上的可以使导入的数据进行计算,但初始化的数据不能计算了
这两点难道不可以统一起来,不会相互排斥?
回复 不支持

使用道具 举报

发表于 2009-11-18 15:52:34 | 显示全部楼层 来自 重庆
我试了一下,利用楼上的可以使导入的数据进行计算,但初始化的数据不能计算了
这两点难道不可以统一起来,不会相互排斥?
昨日的风 发表于 2009-11-18 15:43





提问题,最好,把涉及的相关的代码及其变量说明,一并附上来,可以贴在附件
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-23 15:55:13 | 显示全部楼层 来自 河南郑州
谢谢楼上的解答,但我的是gui做的,感觉很难说的清楚,上面的问题应当可以说明问题吧!
当使用xlswrite(sprintf('%s%s',ZJXH,'计算结果'),hh,'sheet1','A2')(其中ZJXH是‘SG96’)时,初始化的数值可以计算,从excel导入的数据不让计算;
当使用xlswrite(sprintf('%s%s',ZJXH{1},'计算结果'),hh,'sheet1','A2')(其中ZJXH是‘SG96’)时,初始化的数值不可以计算,从excel导入的数据可以进行计算;
有没有办法可以使这两种方法都可以参与计算?谢谢!
回复 不支持

使用道具 举报

发表于 2009-11-23 16:56:25 | 显示全部楼层 来自 重庆
本帖最后由 风天小畜 于 2009-11-23 16:58 编辑
谢谢楼上的解答,但我的是gui做的,感觉很难说的清楚,上面的问题应当可以说明问题吧!
当使用xlswrite(sprintf('%s%s',ZJXH,'计算结果'),hh,'sheet1','A2')(其中ZJXH是‘SG96’)时,初始化的数值可以计算,从exce ...
昨日的风 发表于 2009-11-23 15:55



你所谓的问题,没什么解决不了的。

从二楼开始,好几个楼层,都要你贴出相关出错的,更多的源代码。你却只给出一行。
让你贴出更多的代码,你始终不愿意。GUI做的,就不能贴出代码了?就不能用附件了?

本来,只要你贴出代码,大家一看,十分钟搞定。看你现在,这些问题,差不多一两个星期了,还没搞定。

你却说,gui做的,感觉很难说清楚。正是因为你是新手,说不清楚。所以,你贴出你的整个代码,大家一看就明白了。

谁知道你所谓的“初始化数据”是什么意思啊....
回复 不支持

使用道具 举报

发表于 2009-11-23 19:41:40 | 显示全部楼层 来自 浙江杭州
lz最好把代码贴出来,这样讨论问题比较方便,大家的耐心是有限度的。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-27 10:37:23 | 显示全部楼层 来自 河南郑州
本帖最后由 昨日的风 于 2009-11-27 10:39 编辑

function xinjian_Callback(hObject, eventdata, handles)
% hObject    handle to xinjian (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
set(handles.ZJXH1,'string',num2str(0));
set(handles.H1min,'string',num2str(0));
set(handles.H1max,'string',num2str(0));
set(handles.step1,'string',num2str(0));
set(handles.p11,'string',num2str(0));
set(handles.p12,'string',num2str(0));
set(handles.L115,'string',num2str(0));
set(handles.L116,'string',num2str(0));
set(handles.f1,'string',num2str(0));
set(handles.L11,'string',num2str(0));
set(handles.L12,'string',num2str(0));
set(handles.L13,'string',num2str(0));
set(handles.L14,'string',num2str(0));
set(handles.L15,'string',num2str(0));
set(handles.L16,'string',num2str(0));
set(handles.L17,'string',num2str(0));
set(handles.L18,'string',num2str(0));
set(handles.L19,'string',num2str(0));
set(handles.L110,'string',num2str(0));
set(handles.L111,'string',num2str(0));
set(handles.L112,'string',num2str(0));
set(handles.L113,'string',num2str(0));
set(handles.L114,'string',num2str(0));
set(handles.b1,'string',num2str(0));
% --- Executes on button press in shurushuju.
function shurushuju_Callback(hObject, eventdata, handles)
% hObject    handle to shurushuju (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global ZJXH
ZJXH=get(handles.ZJXH1,'string');
[filename, pathname]= uigetfile('*.xls');
file=[pathname filename];
[ndata, headertext]=xlsread(file);
BB=headertext;
BB(2,1)
AA=ndata
AA=AA(1,:)
%AA =xlsread(sprintf('%s',ZJXH),'sheet1','B2:X5');
AA
set(handles.ZJXH1,'string',BB(2,1));
set(handles.H1min,'string',num2str(AA(1)));
set(handles.H1max,'string',num2str(AA(2)));
set(handles.step1,'string',num2str(AA(3)));
set(handles.p11,'string',num2str(AA(4)));
set(handles.p12,'string',num2str(AA(5)));
set(handles.L115,'string',num2str(AA(6)));
set(handles.L116,'string',num2str(AA(7)));
set(handles.f1,'string',num2str(AA(8)));
set(handles.L11,'string',num2str(AA(9)));
set(handles.L12,'string',num2str(AA(10)));
set(handles.L13,'string',num2str(AA(11)));
set(handles.L14,'string',num2str(AA(12)));
set(handles.L15,'string',num2str(AA(13)));
set(handles.L16,'string',num2str(AA(14)));
set(handles.L17,'string',num2str(AA(15)));
set(handles.L18,'string',num2str(AA(16)));
set(handles.L19,'string',num2str(AA(17)));
set(handles.L110,'string',num2str(AA(18)));
set(handles.L111,'string',num2str(AA(19)));
set(handles.L112,'string',num2str(AA(20)));
set(handles.L113,'string',num2str(AA(21)));
set(handles.L114,'string',num2str(AA(22)));
set(handles.b1,'string',num2str(AA(23)));
% --- Executes on button press in canshushuchu.
function canshushuchu_Callback(hObject, eventdata, handles)
% hObject    handle to canshushuchu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global ZJXH
ZJXH=get(handles.ZJXH1,'string');
Hmin=str2num(get(handles.H1min,'string'));
Hmax=str2num(get(handles.H1max,'string'));
step=str2num(get(handles.step1,'string'));
p1=str2num(get(handles.p11,'string'));
p2=str2num(get(handles.p12,'string'));
L15=str2num(get(handles.L115,'string'));
L16=str2num(get(handles.L116,'string'));
f=str2num(get(handles.f1,'string'));
L1=str2num(get(handles.L11,'string'));
L2=str2num(get(handles.L12,'string'));
L3=str2num(get(handles.L13,'string'));
L4=str2num(get(handles.L14,'string'));
L5=str2num(get(handles.L15,'string'));
L6=str2num(get(handles.L16,'string'));
L7=str2num(get(handles.L17,'string'));
L8=str2num(get(handles.L18,'string'));
L9=str2num(get(handles.L19,'string'));
L10=str2num(get(handles.L110,'string'));
L11=str2num(get(handles.L111,'string'));
L12=str2num(get(handles.L112,'string'));
L13=str2num(get(handles.L113,'string'));
L14=str2num(get(handles.L114,'string'));
b=str2num(get(handles.b1,'string'));
bb={char(ZJXH),Hmin,Hmax,step,p1,p2,L15,L16,f,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,b};
table1={'支架型号','支架最小高度','支架最大高度','高度变化步长','前立柱合力','后立柱合力','顶梁宽度','底座宽度','摩擦系数','L1','L2','L3','L4','L5','L6','L7','L8','L9','L10','L11','L12','L13','L14','b'};
xlswrite(sprintf('%s',ZJXH{1}),table1,'sheet1','A1');
xlswrite(sprintf('%s',ZJXH{1}),bb,'sheet1','A2');
如何我使用的是上面的语句,可以使从excel表格中导入的数据(shurushuju_Callback语句中)的数修改后再导出(canshushuchu-callback中);但如果在初始定义在编辑框中数值(L1,L2等的初始值)就不可以导出,出现如下错误;

??? Cell contents reference from a non-cell array object.
Error in ==> JS_DBG>canshushuchu_Callback at 430
xlswrite(sprintf('%s',ZJXH{1}),table1,'sheet1','A1');

Error in ==> gui_mainfcn at 96
        feval(varargin{:});

Error in ==> JS_DBG at 44
    gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback
12# messenger
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 05:22 , Processed in 0.043941 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表