Octave中fprintf函数报错‘wrong type argument 'class'’原因解析
问题:运行代码时出现
fprintf: wrong type argument 'class'错误 运行程序时遇到如下错误:
error: fprintf: wrong type argument 'class'
对应的代码如下:
syms x f=x; archivo=fopen('ejemplo.txt','w') variable=int(f,x,1,2) fprintf(archivo,'%f\n',variable) fclose(archivo)
请问出现该问题的原因是什么?
解答
错误原因很明确:
- 你用
syms定义了符号变量,调用int()计算积分后,返回的variable是符号类对象 - 而
fprintf的%f格式占位符仅支持数值类型(比如double)输入,符号对象和数值类型不兼容,因此触发类型错误
解决方法很简单,用double()函数把符号对象转换成数值类型即可:
syms x f=x; archivo=fopen('ejemplo.txt','w') variable=int(f,x,1,2) % 将符号对象转为数值 variable_num = double(variable) fprintf(archivo,'%f\n',variable_num) fclose(archivo)
也可以直接在fprintf里完成转换:
fprintf(archivo,'%f\n', double(variable))
内容的提问来源于stack exchange,提问作者javi009
相关产品推荐
相关产品推荐

