在 WSL2 Ubuntu20.4 系统中安装 Baltamatica 显示成功, 准备运行时出现 Inconsistency detected by ld.so: dl-call-libc-early-init.c: 37: _dl_call_libc_early_init: Assertion `sym != NULL' failed! 错误.
请问这该怎么处理?谢谢!
写了一个自适应 Simpson 求积公式的代码, 运行过程中出现了 abs命令或者变量的类型发生变化导致,无法求值 的错误, 如图所示
我写的 adapsimp 的代码如下
function [s, err] = adapsimp(func, a, b, tol) s = comsimp(func, a, b, 2); c = (a + b) / 2; s1 = comsimp(func, a, c, 2); s2 = comsimp(func, c, b, 2); s12 = s1 + s2; err = abs(s12 - s) / 15; if err < tol s = s12; else [s1, err1] = adapsimp(func, a, c, tol/2); [s2, err2] = adapsimp(func, c, b, tol/2); s = s1 + s2; err = err1 + err2; end end
里面用到了 comsimp 函数, 是这样写的
function s = comsimp(func, a, b, n) h = (b - a) / n; s0 = func(a) + func(b); s1 = 0; % summation of f(x_{2k-1}) s2 = 0; % summation of f(x_{2k}) for k = 1:n-1 x = a + k * h; if rem(k , 2) == 0 s2 = s2 + func(x); else s1 = s1 + func(x); end end s = h * (s0 + 4 * s1 + 2 * s2) / 3; end
这部分代码在 octave 上运行是没有问题的
用的版本是2.2.0最新版的.
使用 disp 函数给输出增加说明的时候, 出现了顺序上的错误. 比如使用下面一段代码
for n = 1:3 disp("n 的值为") n end
正常输出应该是一句 "n 的值为" 和 n 的具体值交替输出
但现在是先将n的值都输出完了, 才输出的disp语句里面的内容
使用的是 Deepin 操作系统, 版本为 2.1.1. 好像 Deepin 的安装包还停留在 1 月份的没更新.
对于数量级极大的一组数据
x = 0:0.1:1; y = [2, -2, -6, -42, -1806, -3.26344e+06, -1.06501e+13, -1.13424e+26, -1.28649e+52, -1.65507e+104, -2.73925e+208];
只要使用 plot(x, y) 绘制图形, 软件便会自动退出. 对于其他正常的数据, 绘图时正常的.
使用的是 Deepin 操作系统, 版本为 2.1.1.
目前 Windows 平台下 3.0.1 版的软件是不可以在终端下使用而只能启动图形界面了吗?
使用 mesh 函数绘制曲面图形,报错提示错误使用 mesh 函数,Z 必须为矩阵,不能是标量或向量。
Deepin 系统版本为 2.1.1 上运行是没有问题的,但在 Windows 11 系统版本为 3.0.3 上运行会出现上述错误。
clear; clc; % 空间步长 h = 0.01; % 时间步长 tau = 0.01; x = 0:h:1; t = 0:tau:1; % 剖分网络 [X, T] = meshgrid(x, t); % 解析解 Ut = exp(-X+T); % 作图 mesh(x, t, Ut) title("扩散方程初边值问题的精确解") xlabel("x") ylabel("t")
另外,Deepin 的版本什么时候更新,半年前反馈的 Deepin 版本上的问题到现在还没有修正。
操作系统为 Deepin20.9, 版本为开发者预览版 Baltamatica_999-3.1.3-dev1.
在终端下启动北太天元并使用绘图函数会自动退出程序,提示需要先创建一个 QApplication 应用。
使用 symbolic 插件提供的 sym 命令创建符号变量 x 后,工作区不显示任何变量信息
使用 whos 命令查看发现只有 ans 这个变量,且类型识别为 extern. 将这个 ans 赋值给 x 之后,无论参与运算工作区都是不显示任何信息的,也就是工作区无法识别 extern 这种类型的变量。
目前将所有公布过的正式版本都安装尝试了一遍,都是这种情况。
操作系统为 Deepin20.9, 安装的版本为 baltamatica_999_3.5.0_dev0
绘制一个周期的正弦曲线, 得到的图如下, 坐标轴上标记的点已经超出了图像的大小.
操作系统是 Deepin V23, 输入法使用的是 fcitx5. 从 3.5.0-dev1 开始试验, 到最新的 3.6.1-dev1, 使用通用版的 Linux 安装包安装后, 均无法在编辑器中切换中文输入法输入中文.
3.1.3-dev1_Deepin20.9 在 Deepin V23 上安装能够正常切换中英文.
IQA 插件默认使用的是 qwen2.5 模型,每次重新启动软件都需要重新使用 AIInit 初始化一下其他本地模型。建议增加修改默认模型的功能。
首先生成一个测试文件,第一行类似于表头,2到4行每行存储3个数,用tab键分隔
fwid = fopen("test.txt", "w"); fprintf(fwid, "%s\t%s\t%s\n", "column_1", "column_1", "column_3"); fprintf(fwid, "%d\t%d\t%d\n", 1, 2, 3); fprintf(fwid, "%d\t%d\t%d\n", 4, 5, 6); fprintf(fwid, "%d\t%d\t%d\n", 7, 8, 9); fclose(fwid);
得到的文件共5行,第5行是一空行。下面以 fgetl 函数逐行读取该文件。
方法一:
以 feof 函数作为 while 循环的判断条件,依次读取文件的每一行并显示出来
frid = fopen("test.txt", "r"); fgetl(frid); % 是否到达文件末尾 (EOF) while ~feof(frid) line = fgetl(frid); disp(line); end fclose(frid);
该方法在北太天元中除了显示文件中的3行数字,还会显示一个-1,这个-1是fgetl判断到文件末尾后返回的。而在 MATLAB 中只显示 3 行数字。
方法二:
考虑到方法一中 fgetl 函数返回了 -1 但 feof 条件没有起作用,将 while 循环条件改为 true,循环内部满足 feof 条件 break 循环。
frid = fopen("test.txt", "r"); fgetl(frid); while true line = fgetl(frid); % 如果到达文件末尾,则退出循环 if feof(frid) break; end disp(line); end fclose(frid);
该方法在北太天元中输出符合预期,但在 MATLAB 中只输出两行数据
也就是说,在北太天元中,读取了 7 8 9 三个数后,需要再读取一行才到末尾 (EOF),所以读取到的 -1 没有 disp;而在 MATLAB 中,读取了之后已经到末尾,虽然读取了这三个数,就跳出循环不再显示。代码中的 if 判断更换任意位置在北太天元中都将显示 -1。
验证:
手动逐行读取文件进行验证
frid = fopen("test.txt", "r"); fgetl(frid); disp(feof(frid)); fgetl(frid); disp(feof(frid)); fgetl(frid); disp(feof(frid)); fgetl(frid); disp(feof(frid)); fgetl(frid); disp(feof(frid)); fclose(frid);
在北太天元和 MATLAB 中输出的结果分别是
测试文件共 5 行,前四行有内容,第五行是空行,在 MATLAB 中,读取完第四行就判断为文件末尾,而在北太天元中,五行全部读完才判断是文件末尾。