Arrays 将阿拉伯文字母存储到字符数组中

Arrays 将阿拉伯文字母存储到字符数组中,arrays,matlab,arabic,Arrays,Matlab,Arabic,我试图制作一个阿拉伯字母数组,在上面循环,然后将字母写在文本文件中。问题是matlab无法识别它,它给出的是“?”而不是字母。我正在使用Matlab2016a % slCharacterEncoding() fid = fopen('nv.txt', 'w+', 'n', 'UTF-8'); words = ['ا','ل','ل','ه',' ', 'و']; for i=1:length(words) w=words(1,i); fprintf(fid,'%s',w); en

我试图制作一个阿拉伯字母数组,在上面循环,然后将字母写在文本文件中。问题是matlab无法识别它,它给出的是“?”而不是字母。我正在使用Matlab2016a

% slCharacterEncoding()
fid = fopen('nv.txt', 'w+', 'n', 'UTF-8');
words = ['ا','ل','ل','ه',' ', 'و'];
for i=1:length(words)
    w=words(1,i);
    fprintf(fid,'%s',w);
end
fclose(fid);

奇怪的是,当我从命令中输入
words
数组并从代码中注释它的行时,它就工作了。

一种解决方法是使用
uint16
在命令窗口中获取其16位整数值,即

>> words = ['ا','ل','ل','ه',' ', 'و'];
>> uint16(words)

ans =

   1575   1604   1604   1607     32   1608

现在替换为
words=char([1575 1604 1604 1607 32 1608])在您的m文件中。

一种解决方法是使用
uint16
在命令窗口中获取其16位整数值,即

>> words = ['ا','ل','ل','ه',' ', 'و'];
>> uint16(words)

ans =

   1575   1604   1604   1607     32   1608

现在替换为
words=char([1575 1604 1604 1607 32 1608])在您的m文件中。

与我发布的相同,2分钟差异:D。我将删除我的。与我发布的相同,2分钟差异:D。我将删除我的。