Matlab非常适合数据选择(Matlab uitable data selection)
我有从AScii文件中读取数据的Uitable。
我想使用鼠标选择列,也使用复选框。 我尝试了很多,但我无法弄清楚如何使用鼠标选择合适的列并获取该数据。
此外,我试图在uitable的最后一行插入复选框,因此当用户选择复选框时,选择特定列。
任何的想法?
I have Uitable with data read from a AScii file.
I want to select columns using mouse and also using checkboxes. I tried a lot but i cannot figure out how to select uitable column using mouse and getting that data.
Also I am trying to insert checkbox in the last row of the uitable, so when user selects checkbox, particular column is selected.
Any idea?
原文:https://stackoverflow.com/questions/11103354
更新时间:2020-04-13 21:04
最满意答案
您应该编辑表的CellSelectionCallback和CellEditCallback属性。
set(myTable,`CellSelectionCallback`,@CallBack)
要查看选择了哪些列/行,请使用您在回调中收到的事件数据。
function CallBack(hObj,evt)
disp(evt);
end
据我所知,当没有触发回调时,无法发现当前选择的列。
You should edit the CellSelectionCallback and the CellEditCallback properties of your table.
set(myTable,`CellSelectionCallback`,@CallBack)
In order to see what columns/rows were selected, use the event data that you receive in your callback.
function CallBack(hObj,evt)
disp(evt);
end
As far as I know, there is no way to discover what columns are currently selected when the callback is not fired.
2012-06-19
相关问答
看起来DATA是一个单元阵列。 您可能需要使用花括号对其进行索引: s = DATA{1,I};
d = DATA{2,I};
u = DATA{3,I};
p = DATA{4,I};
t = DATA{5,I};
r = DATA{6,I};
c = DATA{7,I};
a = DATA{8,I};
然后是: DATA{9,I} = X;
在功能结束时,我会这样做 guidata(hObject,handles)
有关更多详细信息,请参阅有关单元阵列中的访问数据的文档以及存储或检索GU
...
在Data属性上使用set应该可以做到这一点: result = f(handles, parameters);
set(handles.uitable, 'Data', result);
Using set on the Data property should do the trick: result = f(handles, parameters);
set(handles.uitable, 'Data', result);
最简单的解释是使用all字典作为数据源。 NSDictionary *results = [jsonString JSONValue];
NSDictionary *all = [results objectForKey:@"transport"];
// self.datasource would be a NSDictionary retained property
self.datasource = all;
然后获取您可以执行的部分数量: - (NSInteger)numberOfS
...
你可以使用html和unicode char在列标题中做你想要的。 您可以使用str2html FEX提交来创建html,并且您需要知道希腊字母的unicode字符: h = figure();
t=uitable(h);
str = str2html ( 'test', 'subscript', '1' );
set(t,'ColumnName',{str; char(945)})
Note: the html in this example is: test1
...
s=size(raw);
for i=1:s(1,1)
for j=1:s(1,2)
if strcmp(raw(i,j),'NaN')
raw(i,j)={' '};
end
if isequal(raw(i,j),{1})
raw(i,j)={'Yes'};
end
if isequal(raw(i,j),{0})
raw(i,j)={'
...
例: headers = cellstr(num2str((1:5)','header %d'))';
data = rand(10,5);
A = [headers ; num2cell(data)];
xlswrite('file.xls',A)
内容: >> A
A =
'header 1' 'header 2' 'header 3' 'header 4' 'header 5'
[ 0.34998] [ 0.28584] [ 0.1
...
我认为你的uitable1_CellSelectionCallback函数的定义没有任何问题。 我已经构建了一个简单的GUI,它只是一个非常uitable并且在调试模式下逐步执行回调,这就是实际发生的事情: 当您left-click单元格的表时,会正确调用uitable1_CellSelectionCallback 一切都直到set(hObject,'Data',adata); 指令和eventdata.Indices数组包含所选单元格的行和列索引(参考下图中的Function Call Stac
...
你可以用Matlab uicontrols / uitable等来做很多事情。如果你只是采用纯粹的java解决方案,例如精美的基于swing的JIDE Grids ,你可以获得最大的灵活性,这些都是在每个Matlab版本中预先打包的。 顺便说一句, uitable只不过是一张Jide表的精简版。 还有一些关于在Matlab中使用Jide的文章可以帮助您入门。 There's only so much you can do with Matlab uicontrols / uitable etc.
...
在将新消息添加到全局messarray之后的A类newMessageReceived 您将需要触发NSNotification -(void) newMessageReceived:(NSMutableArray *)messarraylocal
{
//in addition to your normal code, add the following
[[NSNotificationCenter defaultCenter] postNotificationName:@"New
...
您应该编辑表的CellSelectionCallback和CellEditCallback属性。 set(myTable,`CellSelectionCallback`,@CallBack)
要查看选择了哪些列/行,请使用您在回调中收到的事件数据。 function CallBack(hObj,evt)
disp(evt);
end
据我所知,当没有触发回调时,无法发现当前选择的列。 You should edit the CellSelectionCallba
...