Matlab 中 gfconv(Galois 场函数)的错误
Error in gfconv (Galois field function) in Matlab
我正在尝试使用 Matlab 的 gfconv(a,b)
函数在伽罗华域中将一个十六进制值 AA
乘以 2,控制台 returns 给我一个错误提示:"The input elements must be binary.",但是我的两个元素是二进制的
a=hexToBinaryVector('AA');
b=de2bi(2);
c=gfconv(a,b);
disp(c);
错误代码:
Error using gfconv_mex
The input elements must be binary.
Error in gfconv (line 120)
c = gfconv_mex(varargin{:});
Error in test(line 3)
c=gfconv(a,b);
知道如何解决吗?
我没有在此处执行所有代码,但这是我将采取的解决步骤。
问题
它是二进制形式,但是b
是二进制数的向量。
解决方案
- 查找https://www.mathworks.com/help/matlab/ref/mat2str.html
- 将向量转换为字符串
- 解析字符串并取出 ones 和 zeros
- 使用 str2num 转换回数字:https://www.mathworks.com/help/matlab/ref/str2num.html
试一试,看看是否有效。
注 - 步骤 3 的扩展:
如果我们有变量 a = '[0+11]';
,我们可以 select 字符串中的单个字符,例如:
a(3)
ans = '+'
a(4)
ans = '1'
a(1)
and = '['
因此,可以用循环解析字符串
for n = 1 : length(a)
if a(n) == '1' || a(n) == '0'
str(n) = a(n);
end
end
最后,转换字符串:
num = str2num(str);
完成
我正在尝试使用 Matlab 的 gfconv(a,b)
函数在伽罗华域中将一个十六进制值 AA
乘以 2,控制台 returns 给我一个错误提示:"The input elements must be binary.",但是我的两个元素是二进制的
a=hexToBinaryVector('AA');
b=de2bi(2);
c=gfconv(a,b);
disp(c);
错误代码:
Error using gfconv_mex
The input elements must be binary.
Error in gfconv (line 120)
c = gfconv_mex(varargin{:});
Error in test(line 3)
c=gfconv(a,b);
知道如何解决吗?
我没有在此处执行所有代码,但这是我将采取的解决步骤。
问题
它是二进制形式,但是b
是二进制数的向量。
解决方案
- 查找https://www.mathworks.com/help/matlab/ref/mat2str.html
- 将向量转换为字符串
- 解析字符串并取出 ones 和 zeros
- 使用 str2num 转换回数字:https://www.mathworks.com/help/matlab/ref/str2num.html
试一试,看看是否有效。
注 - 步骤 3 的扩展:
如果我们有变量 a = '[0+11]';
,我们可以 select 字符串中的单个字符,例如:
a(3)
ans = '+'
a(4)
ans = '1'
a(1)
and = '['
因此,可以用循环解析字符串
for n = 1 : length(a)
if a(n) == '1' || a(n) == '0'
str(n) = a(n);
end
end
最后,转换字符串:
num = str2num(str);
完成