在 WSL2 Ubuntu20.4 系統(tǒng)中安裝 Baltamatica 顯示成功, 準(zhǔn)備運(yùn)行時(shí)出現(xiàn) Inconsistency detected by ld.so: dl-call-libc-early-init.c: 37: _dl_call_libc_early_init: Assertion `sym != NULL' failed! 錯(cuò)誤.

請(qǐng)問這該怎么處理?謝謝!
有沒有可以永久添加路徑的方法.
目前點(diǎn)擊設(shè)置, 添加路徑只針對(duì)當(dāng)前有效. 新寫一個(gè)文件或者重啟軟件之后, 都需要重新添加路徑才能識(shí)別.
寫了一個(gè)自適應(yīng) Simpson 求積公式的代碼, 運(yùn)行過程中出現(xiàn)了 abs命令或者變量的類型發(fā)生變化導(dǎo)致,無法求值 的錯(cuò)誤, 如圖所示

我寫的 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 函數(shù), 是這樣寫的
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 上運(yùn)行是沒有問題的

用的版本是2.2.0最新版的.
使用 disp 函數(shù)給輸出增加說明的時(shí)候, 出現(xiàn)了順序上的錯(cuò)誤. 比如使用下面一段代碼
for n = 1:3
disp("n 的值為")
n
end正常輸出應(yīng)該是一句 "n 的值為" 和 n 的具體值交替輸出

但現(xiàn)在是先將n的值都輸出完了, 才輸出的disp語(yǔ)句里面的內(nèi)容

使用的是 Deepin 操作系統(tǒng), 版本為 2.1.1. 好像 Deepin 的安裝包還停留在 1 月份的沒更新.
對(duì)于數(shù)量級(jí)極大的一組數(shù)據(jù)
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) 繪制圖形, 軟件便會(huì)自動(dòng)退出. 對(duì)于其他正常的數(shù)據(jù), 繪圖時(shí)正常的.
使用的是 Deepin 操作系統(tǒng), 版本為 2.1.1.
目前 Windows 平臺(tái)下 3.0.1 版的軟件是不可以在終端下使用而只能啟動(dòng)圖形界面了嗎?
使用 mesh 函數(shù)繪制曲面圖形,報(bào)錯(cuò)提示錯(cuò)誤使用 mesh 函數(shù),Z 必須為矩陣,不能是標(biāo)量或向量。
Deepin 系統(tǒng)版本為 2.1.1 上運(yùn)行是沒有問題的,但在 Windows 11 系統(tǒng)版本為 3.0.3 上運(yùn)行會(huì)出現(xiàn)上述錯(cuò)誤。
clear;
clc;
% 空間步長(zhǎng)
h = 0.01;
% 時(shí)間步長(zhǎng)
tau = 0.01;
x = 0:h:1;
t = 0:tau:1;
% 剖分網(wǎng)絡(luò)
[X, T] = meshgrid(x, t);
% 解析解
Ut = exp(-X+T);
% 作圖
mesh(x, t, Ut)
title("擴(kuò)散方程初邊值問題的精確解")
xlabel("x")
ylabel("t")另外,Deepin 的版本什么時(shí)候更新,半年前反饋的 Deepin 版本上的問題到現(xiàn)在還沒有修正。
操作系統(tǒng)為 Deepin20.9, 版本為開發(fā)者預(yù)覽版 Baltamatica_999-3.1.3-dev1.
在終端下啟動(dòng)北太天元并使用繪圖函數(shù)會(huì)自動(dòng)退出程序,提示需要先創(chuàng)建一個(gè) QApplication 應(yīng)用。

操作系統(tǒng)為 Deepin20.9, 版本為開發(fā)者預(yù)覽版 Baltamatica_999-3.1.3-dev1.
繪圖后點(diǎn)擊左上角導(dǎo)出圖片保存為png格式,提示導(dǎo)出圖片失敗。

使用 symbolic 插件提供的 sym 命令創(chuàng)建符號(hào)變量 x 后,工作區(qū)不顯示任何變量信息

使用 whos 命令查看發(fā)現(xiàn)只有 ans 這個(gè)變量,且類型識(shí)別為 extern. 將這個(gè) ans 賦值給 x 之后,無論參與運(yùn)算工作區(qū)都是不顯示任何信息的,也就是工作區(qū)無法識(shí)別 extern 這種類型的變量。

目前將所有公布過的正式版本都安裝嘗試了一遍,都是這種情況。
操作系統(tǒng)為 Deepin20.9, 安裝的版本為 baltamatica_999_3.5.0_dev0
繪制一個(gè)周期的正弦曲線, 得到的圖如下, 坐標(biāo)軸上標(biāo)記的點(diǎn)已經(jīng)超出了圖像的大小.

操作系統(tǒng)是 Deepin V23, 輸入法使用的是 fcitx5. 從 3.5.0-dev1 開始試驗(yàn), 到最新的 3.6.1-dev1, 使用通用版的 Linux 安裝包安裝后, 均無法在編輯器中切換中文輸入法輸入中文.
3.1.3-dev1_Deepin20.9 在 Deepin V23 上安裝能夠正常切換中英文.
軟件檢測(cè)到新版本點(diǎn)擊更新后,下載安裝包進(jìn)度條一直無反應(yīng)。而且更新至 4.0.2 后仍提示版本更新。Windows 版本。

IQA 插件默認(rèn)使用的是 qwen2.5 模型,每次重新啟動(dòng)軟件都需要重新使用 AIInit 初始化一下其他本地模型。建議增加修改默認(rèn)模型的功能。
首先生成一個(gè)測(cè)試文件,第一行類似于表頭,2到4行每行存儲(chǔ)3個(gè)數(shù),用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 函數(shù)逐行讀取該文件。
方法一:
以 feof 函數(shù)作為 while 循環(huán)的判斷條件,依次讀取文件的每一行并顯示出來
frid = fopen("test.txt", "r");
fgetl(frid);
% 是否到達(dá)文件末尾 (EOF)
while ~feof(frid)
line = fgetl(frid);
disp(line);
end
fclose(frid);該方法在北太天元中除了顯示文件中的3行數(shù)字,還會(huì)顯示一個(gè)-1,這個(gè)-1是fgetl判斷到文件末尾后返回的。而在 MATLAB 中只顯示 3 行數(shù)字。


方法二:
考慮到方法一中 fgetl 函數(shù)返回了 -1 但 feof 條件沒有起作用,將 while 循環(huán)條件改為 true,循環(huán)內(nèi)部滿足 feof 條件 break 循環(huán)。
frid = fopen("test.txt", "r");
fgetl(frid);
while true
line = fgetl(frid);
% 如果到達(dá)文件末尾,則退出循環(huán)
if feof(frid)
break;
end
disp(line);
end
fclose(frid);該方法在北太天元中輸出符合預(yù)期,但在 MATLAB 中只輸出兩行數(shù)據(jù)


也就是說,在北太天元中,讀取了 7 8 9 三個(gè)數(shù)后,需要再讀取一行才到末尾 (EOF),所以讀取到的 -1 沒有 disp;而在 MATLAB 中,讀取了之后已經(jīng)到末尾,雖然讀取了這三個(gè)數(shù),就跳出循環(huán)不再顯示。代碼中的 if 判斷更換任意位置在北太天元中都將顯示 -1。
驗(yàn)證:
手動(dòng)逐行讀取文件進(jìn)行驗(yàn)證
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 中輸出的結(jié)果分別是


測(cè)試文件共 5 行,前四行有內(nèi)容,第五行是空行,在 MATLAB 中,讀取完第四行就判斷為文件末尾,而在北太天元中,五行全部讀完才判斷是文件末尾。
有一個(gè)mat數(shù)據(jù)文件,在matlab中是能夠正常加載的

但在北太天元中,提示數(shù)據(jù)文件為空,讀取不到任何數(shù)據(jù)

無法讀取保存polyshape數(shù)據(jù)類型的mat數(shù)據(jù)文件
t_start = datetime(2025, 5, 21, 21, 00, 00); t_end = t_start + hours(1); t_step = minutes(1); t_start:t_step:t_end
運(yùn)行報(bào)錯(cuò), 提示不支持冒號(hào)運(yùn)算符

1. 首先,針對(duì)北太天元所使用的 Python,安裝 pyttsx3 文本轉(zhuǎn)語(yǔ)音引擎:
load_plugin("Python");
pipcmd("install pyttsx3 -i https://pypi.tuna.tsinghua.edu.cn/simple/");2. 使用如下函數(shù)初始化一個(gè)基于 pyttsx3 的 TTS 引擎并設(shè)置其參數(shù):
function [engine] = textToSpeech_pytts_init()
% 獲取 Python 根對(duì)象用于調(diào)用 Python 函數(shù)等
py = pyroot;
% 導(dǎo)入 pyttsx3 模塊
pyttsx3 = py.pyttsx3;
% 初始化 TTS 引擎
engine = pyttsx3.init();
% 設(shè)置語(yǔ)音屬性 (可選)
voices = engine.getProperty('voices');
% voices 是一個(gè) py.list 對(duì)象
% 目前北太天元無法直接使用 length 獲取 py.list 的長(zhǎng)度
% 只能暫時(shí)使用 Python 中的 len 來代替
for i = 1:py.len(voices)
% 同樣, 北太天元中的 frompy 函數(shù)無法將 py.list 類型的 voices 轉(zhuǎn)化為內(nèi)置的數(shù)組
% 所以只能通過 pygetitem 函數(shù)來獲取每一個(gè)元素
voice = pygetitem(voices, i-1);
if contains(string(voice.name), 'Chinese') % 查找支持中文的語(yǔ)音
engine.setProperty('voice', voice.id);
break
end
if contains(string(voice.name), 'English') % 查找支持英文的語(yǔ)音
engine.setProperty('voice', voice.id);
break;
end
end
% 設(shè)置語(yǔ)速 (可選)
engine.setProperty('rate', 150); % 默認(rèn)值為 200
% 設(shè)置音量 (可選)
engine.setProperty('volume', 0.8); % 范圍是 0.0 到 1.0
end3. 初始化引擎,并傳給引擎文本,讓引擎朗讀,或者保存音頻:
% 初始化 TTS 引擎 engine = textToSpeech_pytts_init(); % 設(shè)置要說的文本 text = "你好,我在北太天元中調(diào)用 Python 文本轉(zhuǎn)語(yǔ)音引擎!"; engine.say(text); % 保存為 WAV 文件 engine.save_to_file(text, "output.wav"); % 運(yùn)行并等待語(yǔ)音完成 engine.runAndWait(); engine.stop()
這樣便可以聽見引擎朗讀的聲音,也可以在本地找到保存的 output.wav 文件。
本示例中的 textToSpeech_pytts_init() 函數(shù)參考 大預(yù)言模型(LLM)賦能具身智能中的人機(jī)交互 中 Python 模型集成一節(jié),并將無法在北太天元中運(yùn)行的部分進(jìn)行了修改。
本示例也參考了 Python使用總結(jié)之Python文本轉(zhuǎn)語(yǔ)音引擎:pyttsx3完全指南 如何使用 pyttsx3 庫(kù)。
對(duì)于這樣一組數(shù)據(jù), 每一列數(shù)據(jù)長(zhǎng)度保持一致, 不足的采用空格補(bǔ)充; 數(shù)據(jù)與數(shù)據(jù)之間采用空格分隔:
13.52220 0.00 18.100 0 0.6310 3.8630 100.00 1.5106 24 666.0 20.20 131.42 13.33 23.10 4.89822 0.00 18.100 0 0.6310 4.9700 100.00 1.3325 24 666.0 20.20 375.52 3.26 50.00 5.66998 0.00 18.100 1 0.6310 6.6830 96.80 1.3567 24 666.0 20.20 375.33 3.73 50.00 6.53876 0.00 18.100 1 0.6310 7.0160 97.50 1.2024 24 666.0 20.20 392.05 2.96 50.00 9.23230 0.00 18.100 0 0.6310 6.2160 100.00 1.1691 24 666.0 20.20 366.15 9.53 50.00 8.26725 0.00 18.100 1 0.6680 5.8750 89.60 1.1296 24 666.0 20.20 347.88 8.88 50.00 11.10810 0.00 18.100 0 0.6680 4.9060 100.00 1.1742 24 666.0 20.20 396.90 34.77 13.80 18.49820 0.00 18.100 0 0.6680 4.1380 100.00 1.1370 24 666.0 20.20 396.90 37.97 13.80 19.60910 0.00 18.100 0 0.6710 7.3130 97.90 1.3163 24 666.0 20.20 396.90 13.44 15.00 15.28800 0.00 18.100 0 0.6710 6.6490 93.30 1.3449 24 666.0 20.20 363.02 23.24 13.90
使用內(nèi)置的 readmatrix 讀取, 會(huì)出現(xiàn)以下兩個(gè)問題:
每行行首可能會(huì)出現(xiàn)空格, readmatrix 會(huì)得到第一個(gè)數(shù)據(jù)為 NaN;
數(shù)據(jù)與數(shù)據(jù)之間雖然都是空格, 但空格數(shù)量不統(tǒng)一, 有1個(gè)空格、2個(gè)空格和3個(gè)空格幾種情況。
所以使用 readmatrix 得到的數(shù)據(jù)列數(shù)不匹配,多分隔出來的數(shù)據(jù)全部都是 NaN.
對(duì)于上述兩個(gè)問題,MATLAB 中的 readmatrix 函數(shù)是可以輸入 "ConsecutiveDelimitersRule", "join" 把重復(fù)的分隔符合并成一個(gè)分隔符, "LeadingDelimitersRule", "ignore" 參數(shù)忽略行首的分隔符.
contains(str, pat) 函數(shù)用于判斷字符串 str 中是否包含 pat 子串,但在 Windows 4.2.1 版本中,contains 像是被一個(gè)用于幾何包含的函數(shù)給覆蓋了


經(jīng)過測(cè)試,該函數(shù)在 Linux 4.2.1 版本和 Windows 4.2.0 版本中都能正常運(yùn)行。
Lévy 飛行是基于 Lévy 分布的隨機(jī)搜索過程. Lévy 飛行是一種隨機(jī)行走, 其中步長(zhǎng)服從 Lévy 分布. 它通過模擬自然界中動(dòng)物在尋找食物或遷徙過程中, 采取的長(zhǎng)距離跳躍和短距離滑行相結(jié)合的移動(dòng)模式. 其核心特點(diǎn)是步長(zhǎng)的概率分布為重尾分布, 即存在相對(duì)較高的概率出現(xiàn)大跨步, 這使得動(dòng)物能夠在廣闊的范圍內(nèi)進(jìn)行搜索.
與傳統(tǒng)的隨機(jī)游走策略相比, Lévy 飛行策略具有以下優(yōu)勢(shì):
* 提高搜索效率: 通過長(zhǎng)距離跳躍, Lévy 飛行策略能夠快速擴(kuò)大搜索范圍, 提高搜索效率;
* 跳出局部最優(yōu)解: Lévy 飛行策略在搜索過程中偶爾會(huì)出現(xiàn)大跨步, 有助于跳出局部最優(yōu)解, 尋找全局最優(yōu)解;
* 適應(yīng)性強(qiáng): Lévy 飛行策略適用于各種復(fù)雜環(huán)境, 能夠有效應(yīng)對(duì)路徑規(guī)劃中的不確定性.
因此, Lévy 飛行算法作為一種高效的優(yōu)化路徑規(guī)劃方法, 目前被廣泛應(yīng)用于智能優(yōu)化算法中, 如麻雀搜索算法、鯨魚優(yōu)化算法、粒子群優(yōu)化算法、蜣螂優(yōu)化算法等等.
Mantegna 算法是 Mantegna 于 1994 年提出的用于模擬對(duì)稱 Lévy 穩(wěn)定過程. 根據(jù) Mantegna 算法, 可以通過生成兩個(gè)正態(tài)分布的數(shù)據(jù)計(jì)算得到服從 Lévy 分布的數(shù)據(jù). 采用北太天元數(shù)值計(jì)算通用軟件來實(shí)現(xiàn)該算法的代碼如下:
function [s] = levyrnd(beta, m, n) %LEVYRND - Mantegna 算法生成對(duì)稱 Lévy 穩(wěn)定分布隨機(jī)數(shù)組. % % 用法: % levyrng(beta); - 生成單個(gè)服從參數(shù)為 beta 的 Lévy 分布數(shù)據(jù); % levyrng(beta, m); - 生成 m x m 維服從參數(shù)為 beta 的 Lévy 分布矩陣; % levyrng(beta, m, n); - 生成 m x n 維服從參數(shù)為 beta 的 Lévy 分布矩陣. % % 示例: % >> rng(1234); % >> levyrnd(1.8) % 0.5299 % >> levyrnd(0.5, 2) % 0.7074 -0.0853 % -2.1705 -219.2879 % >> levyrnd(1.1, 2, 3) % -0.6688 0.2140 -1.8900 % -3.4959 0.2340 -24.1111 % narginchk(1, 3); if nargin == 1 m = 1; n = 1; elseif nargin == 2 n = m; end % 計(jì)算 u ~ N(0, sigma^2) 的方差 num = gamma(1 + beta) * sin(pi * beta / 2); den = gamma((1 + beta)/2) * beta * 2^((beta - 1)/2); sigma = (num / den)^(1/beta); % 生成隨機(jī)變量 u 和 v, v ~ N(0, 1). u = normrnd(0, sigma, m, n); v = normrnd(0, 1, m, n); % 生成 Lévy 分布數(shù)據(jù) s = u ./ abs(v).^(1/beta); end
利用 Mantegna 算法, 可以生成一系列的服從 Lévy 分布的隨機(jī)步長(zhǎng), 模擬 Lévy 飛行. 值得注意的是, 隨機(jī)游走是在任意維度空間中, 一個(gè)點(diǎn)隨機(jī)地向任意方向前進(jìn)任意長(zhǎng)度的距離, 然后不斷的重復(fù).
我們模擬從原點(diǎn)出發(fā), 隨機(jī)向任意方向前進(jìn)步長(zhǎng)為 $s$ 的 Lévy 飛行. 模擬過程如下:
clear;
clc;
% Lévy 分布參數(shù)
beta = 1.5;
% Lévy 飛行步數(shù)
n = 1000;
% 生成隨機(jī)方向
angles = 2 * pi * rand(n, 1);
% 初始化數(shù)據(jù)
x = zeros(n + 1, 1);
y = zeros(n + 1, 1);
% 生成 Lévy 步長(zhǎng)
s = levyrnd(beta, n, 1);
% 循環(huán)游走
for i = 1:n
x(i + 1) = x(i) + cos(angles(i)) * s(i);
y(i + 1) = y(i) + sin(angles(i)) * s(i);
end
% 繪制 Lévy 飛行隨機(jī)游走
plot(x, y);
title("Levy 飛行策略");
xlabel("x");
ylabel("y");得到的結(jié)果如圖所示:

對(duì)于 MATLAB 保存的 MAT 格式數(shù)據(jù)文件,在北太天元中只能讀取 v6 和 v7 兩個(gè)版本的數(shù)據(jù)文件,對(duì)于 v4 和 v7.3 兩個(gè)版本的數(shù)據(jù)文件,在北太天元中均提示數(shù)據(jù)文件為空。