我是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}
我通常会得到一行汉明码。
这部分enkoder功能:
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标签中的行中打印出一个单元格数组?
答案 0 :(得分:0)
在最后一行使用[D{:}]
代替D
可能有所帮助。
编辑:改为使用num2str(cell2mat(D))