【问题标题】:Printing cell array in gui label matlab在gui标签matlab中打印单元阵列
【发布时间】:2015-05-26 17:02:38
【问题描述】:

我对 matlab 编程真的很陌生,我想不通。我花了几个小时在谷歌上搜索,但没有运气。 我正在尝试制作一个将文本文件转换为二进制文件然后将二进制文件转换为汉明码的应用程序。这是第一部分,其余部分对于这个问题并不重要。

GUI 在列中打印出我的输出,我希望它在一行中打印出来。 变量通常打印在一行中,但在 GUI 中它打印在列中...

程序从 txt 文件中获取文本,将每个字符转换为二进制数字,然后我为每个字符数字创建单元格,然后将其放入执行汉明编码的函数中。所以输出是一个元胞数组。

这是程序的主要部分:

[filename pathname] = uigetfile({'*.txt'}, 'File Selector');
fullpathname = strcat(pathname, filename);
text = fileread(fullpathname);             
set(handles.text1, 'String', fullpathname) 
binarno = dec2bin(text, 8);                 


L = length(text);   



C = num2cell(binarno,2)

D = cellfun(@enkoder, C,'uniformoutput', 0)



set(handles.text2, 'String', D)

我尝试了很多东西,但没有任何效果。我不知道为什么它会在一列中打印出单元格数组 D.. 而不是一行。如果我尝试D{1},我通常会得到一行汉明码。

还有这部分编码器功能:

function hamm = enkoder(ulaz)

%the hamming encoding part of the code goes here

hamm = [prva_pozicija, druga_pozicija, jedan, cetvrta_pozicija, 
dva, tri, cetiri, osma_pozicija ,pet, sest, sedam, osam] 
%this is the output from the code

所以我想问题是如何在 GUI 标签的行中打印出一个单元格数组?

【问题讨论】:

  • uicontrol('style','text','String',{'111','22','333'}','Units','Normalized','Position',[0 0 1 1]) 似乎有效。您的问题可能与D有关。您可以尝试class(D)并告诉我们结果吗?
  • 我不太清楚把你写的这个uicontrol放在哪里。而D的类是cell
  • 好的,我想它会编辑我的答案

标签: arrays matlab cell-array


【解决方案1】:

在最后一行使用[D{:}] 而不是D 可能会有所帮助。

编辑:改用num2str(cell2mat(D))

【讨论】:

  • 不,它仍然打印出一列:S
  • 这是它在控制台和 gui 中的样子。 snag.gy/rFg1g.jpg控制台中的两个hamm,这就是我想要的gui..
  • 改用num2str(cell2mat(D))
  • 是的,谢谢,我刚刚想通了,但我会接受你的回答 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多