【发布时间】: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