普通会员

邱彼郑楠

此用户很神秘,没有留下任何信息

16帖子
13回复
1788积分
ID:000080
无法运行 baltamatica.sh

在 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! 错误.

baltamatica_install_runerror.png

请问这该怎么处理?谢谢!

6 2023-04-02
路径管理

有没有可以永久添加路径的方法.

目前点击设置, 添加路径只针对当前有效. 新写一个文件或者重启软件之后, 都需要重新添加路径才能识别.

2 2023-04-26
abs命令或者变量的类型发生变化导致,无法求值

写了一个自适应 Simpson 求积公式的代码, 运行过程中出现了 abs命令或者变量的类型发生变化导致,无法求值 的错误, 如图所示

错误信息.png


我写的 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 上运行是没有问题的

Octave运行无问题.png


用的版本是2.2.0最新版的.

1 2023-04-30
disp显示顺序问题

使用 disp 函数给输出增加说明的时候, 出现了顺序上的错误. 比如使用下面一段代码

for n = 1:3
    disp("n 的值为")
    n
end

正常输出应该是一句 "n 的值为" 和 n 的具体值交替输出

截图_选择区域_20230529091405.png

但现在是先将n的值都输出完了, 才输出的disp语句里面的内容

截图_baltamatica_20230529091703.png

使用的是 Deepin 操作系统, 版本为 2.1.1. 好像 Deepin 的安装包还停留在 1 月份的没更新. 

1 2023-05-29
绘图出现闪退

对于数量级极大的一组数据

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.

1 2023-09-21
终端下启动打开北太天元

目前 Windows 平台下 3.0.1 版的软件是不可以在终端下使用而只能启动图形界面了吗?

2 2023-10-23
错误使用mesh函数

使用 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 版本上的问题到现在还没有修正。

2 2024-01-06
终端下无法启动绘图

操作系统为 Deepin20.9, 版本为开发者预览版 Baltamatica_999-3.1.3-dev1.

在终端下启动北太天元并使用绘图函数会自动退出程序,提示需要先创建一个 QApplication 应用。

北太天元终端无法绘图.png


1 2024-04-14
绘图导出图片失败

操作系统为 Deepin20.9, 版本为开发者预览版 Baltamatica_999-3.1.3-dev1.

绘图后点击左上角导出图片保存为png格式,提示导出图片失败。

北太天元导出图片失败.png

3 2024-04-14
工作区无法识别 symbolic 插件创建的符号变量

使用 symbolic 插件提供的 sym 命令创建符号变量 x 后,工作区不显示任何变量信息

工作区无符号变量.png

使用 whos 命令查看发现只有 ans 这个变量,且类型识别为 extern. 将这个 ans 赋值给 x 之后,无论参与运算工作区都是不显示任何信息的,也就是工作区无法识别 extern 这种类型的变量。

whos.png

目前将所有公布过的正式版本都安装尝试了一遍,都是这种情况。

3 2024-05-07
绘图坐标轴的尺度和图像的尺度不匹配

操作系统为 Deepin20.9, 安装的版本为 baltamatica_999_3.5.0_dev0

绘制一个周期的正弦曲线, 得到的图如下, 坐标轴上标记的点已经超出了图像的大小.

坐标轴显示问题.png

1 2024-05-30
Linux 通用版无法切换中文输入法

操作系统是 Deepin V23, 输入法使用的是 fcitx5. 从 3.5.0-dev1 开始试验, 到最新的 3.6.1-dev1, 使用通用版的 Linux 安装包安装后, 均无法在编辑器中切换中文输入法输入中文.

3.1.3-dev1_Deepin20.9 在 Deepin V23 上安装能够正常切换中英文.

2 2024-09-07
软件自动更新无法下载安装包

软件检测到新版本点击更新后,下载安装包进度条一直无反应。而且更新至 4.0.2 后仍提示版本更新。Windows 版本。

北太天元自动更新问题.png

1 2025-02-19
建议增加修改默认大模型的功能

IQA 插件默认使用的是 qwen2.5 模型,每次重新启动软件都需要重新使用 AIInit 初始化一下其他本地模型。建议增加修改默认模型的功能。

1 2025-02-19
北太天元和MATLAB对文件末尾判断的区别

首先生成一个测试文件,第一行类似于表头,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 行数字。

屏幕截图 2025-02-20 091637.png屏幕截图 2025-02-20 091816.png

方法二:

考虑到方法一中 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 中只输出两行数据

屏幕截图 2025-02-20 092237.png屏幕截图 2025-02-20 092913.png

也就是说,在北太天元中,读取了 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 中输出的结果分别是

屏幕截图 2025-02-20 094137.png屏幕截图 2025-02-20 094435.png

测试文件共 5 行,前四行有内容,第五行是空行,在 MATLAB 中,读取完第四行就判断为文件末尾,而在北太天元中,五行全部读完才判断是文件末尾。

0 2025-02-20
mat数据文件为空

有一个mat数据文件,在matlab中是能够正常加载的

屏幕截图 2025-03-20 153245.png

但在北太天元中,提示数据文件为空,读取不到任何数据

屏幕截图 2025-03-20 153506.png

1 2025-03-20