警告:表数据不是可编辑在这个位置。场上将从数组类型转化为单一元素(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辛格
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的更多信息,请参考
希望它可以帮助!

类别

找到更多的在开始使用MATLAB帮助中心文件交换

s manbetx 845


释放

R2018a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!