警告:表数据不是可编辑在这个位置。场上将从数组类型转化为单一元素(1 x1)
15的观点(30天)
显示旧的评论
我只在第一次运行GUI工作,然而在更新表一次,场上类型从数组变成一个(1 x1)元素。这阻碍数据给另一个运行扔我一个错误”
警告:表数据不是可编辑在这个位置
“在每一个尝试。
这个问题是由于一条线
x =得到(handles.uitable1“数据”)
我应该什么类型的表属性更新后第一次运行,先后工作好吗?
我只是想避免使用两个表。
谢谢你的时间
函数varargout = TABLE3(变长度输入宗量)
gui_Singleton = 1;
gui_State =结构(“gui_Name”mfilename,…
“gui_Singleton”gui_Singleton,…
“gui_OpeningFcn”@TABLE3_OpeningFcn,…
“gui_OutputFcn”@TABLE3_OutputFcn,…
“gui_LayoutFcn”[],…
“gui_Callback”[]);
如果输入参数个数& & ischar(变长度输入宗量{1})
gui_State。gui_Callback = str2func(变长度输入宗量{1});
结束
如果nargout
[varargout {1: nargout}] = gui_mainfcn (gui_State,变长度输入宗量{:});
其他的
gui_mainfcn (gui_State变长度输入宗量{:});
结束
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数TABLE3_OpeningFcn (hObject eventdata处理,变长度输入宗量)
句柄。输出= hObject;
guidata (hObject处理);
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数varargout = TABLE3_OutputFcn (hObject eventdata处理)
varargout {1} = handles.output;
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数pushbutton1_Callback (hObject eventdata处理)
x = str2double (get (handles.uitable1,“数据”))
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
%以上线后的问题是x =得到(handles.uitable1,“数据”)
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
%更新表数组数据一次,后表属性更改
% ito单个元素数据类型(1 x1)是不能喂另一个运行
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
y = (x (: 1))
TotalMass = str2double (get (handles.TotalMass,“字符串”));
CoarseMass = str2double (get (handles.CoarseMass,“字符串”));
FineMass = str2double (get (handles.FineMass,“字符串”));
Data = [y (y / TotalMass) * 100年,cumsum ((y / TotalMass) * 100), 100 - cumsum ((y / TotalMass) * 100)];
集(handles.uitable1,“数据”、数据)
ParticleSize = [100 80 40 20 10 4.75 - 2 1。6 .425。3 .212 .150 .075 0.037) ';
semilogx (handles.axes1 ParticleSize、数据(:,4),“Linew”,2)
D30 = ParticleSize (dsearchn(数据(:,4),30));
D60 = ParticleSize (dsearchn(数据(:,4)、60));
D10 = ParticleSize (dsearchn(数据(:,4),10));
Cc = D30 ^ 2 / (D60 * D10);
铜= D60 / D10;
集(handles.axes1,“Xdir”,“反向”)
包含(handles.axes1筛分粒度的)
ylabel (handles.axes1“细百分比%”)
标题(“粒度Distrebution”)
如果铜> 4 &铜< 6
集(handles.Soilclass,“字符串”,(“分级土壤铜= "铜)
其他的
集(handles.Soilclass,“字符串”,(“分选差的土壤铜= "铜)
结束
网格在
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数TotalMass_Callback (hObject eventdata处理)
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数TotalMass_CreateFcn (hObject eventdata处理)
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
如果ispc & & isequal (get (hObject,“写成BackgroundColor”),得到(0,“defaultUicontrolBackgroundColor”))
集(hObject,“写成BackgroundColor”,“白色”);
结束
函数FineMass_Callback (hObject eventdata处理)
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数FineMass_CreateFcn (hObject eventdata处理)
如果ispc & & isequal (get (hObject,“写成BackgroundColor”),得到(0,“defaultUicontrolBackgroundColor”))
集(hObject,“写成BackgroundColor”,“白色”);
结束
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数Soilclass_Callback (hObject eventdata处理)
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数Soilclass_CreateFcn (hObject eventdata处理)
如果ispc & & isequal (get (hObject,“写成BackgroundColor”),得到(0,“defaultUicontrolBackgroundColor”))
集(hObject,“写成BackgroundColor”,“白色”);
结束
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数uitable1_CreateFcn (hObject eventdata处理)
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数uitable1_CellEditCallback (hObject eventdata处理)
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数CoarseMass_Callback (hObject eventdata处理)
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
函数CoarseMass_CreateFcn (hObject eventdata处理)
如果ispc & & isequal (get (hObject,“写成BackgroundColor”),得到(0,“defaultUicontrolBackgroundColor”))
集(hObject,“写成BackgroundColor”,“白色”);
结束
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
答案(1)
Aditya辛格
2023年6月14日4:09
H
嗨
Enkuneh
,
按
我理解你想
访问的数据表,但在做的事情
所以
你目前的错误。T
他错误的原因“表数据不是可编辑在这个位置”是
得到
(
handles.uitabl
e
1,“数据”)
返回一个标量值而不是
细胞
或
双
数组。
使用 后更新表中的数据
集(
handles.uitable
1日的数据
的,数据
)
,你可以作为 检索更新后的数据
双
数组使用
数据= cell2mat (get (
handles.uitable
1、“数据”))
。
这是
修改后的代码
你
应该
使用的行抛出错误
:
x = cell2mat (get (handles.uitable1,“数据”));
通过使用
cell2mat
,我们将 的结果
get (
handles.uitable
1,“数据”)
到
双
数组,即使只有一个元素。这允许您访问和
修改
直接阵列元素。
如果你不想使用两个表,你可以
修改
你的回调函数将原表数据存储在一个单独的变量的函数。然后,您可以更新这个变量的原始数据和用它来更新表,而不必从表中检索它本身。
在cell2mat的更多信息,请参考
希望它可以帮助!