You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:57:04