在 WSL2 Ubuntu20.4 系統(tǒng)中安裝 Baltamatica 顯示成功, 準(zhǔn)備運行時出現(xiàn) Inconsistency detected by ld.so: dl-call-libc-early-init.c: 37: _dl_call_libc_early_init: Assertion `sym != NULL' failed! 錯誤.
請問這該怎么處理?謝謝!
寫了一個自適應(yīng) Simpson 求積公式的代碼, 運行過程中出現(xiàn)了 abs命令或者變量的類型發(fā)生變化導(dǎo)致,無法求值 的錯誤, 如圖所示
我寫的 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 上運行是沒有問題的
用的版本是2.2.0最新版的.
使用 disp 函數(shù)給輸出增加說明的時候, 出現(xiàn)了順序上的錯誤. 比如使用下面一段代碼
for n = 1:3 disp("n 的值為") n end
正常輸出應(yīng)該是一句 "n 的值為" 和 n 的具體值交替輸出
但現(xiàn)在是先將n的值都輸出完了, 才輸出的disp語句里面的內(nèi)容
使用的是 Deepin 操作系統(tǒng), 版本為 2.1.1. 好像 Deepin 的安裝包還停留在 1 月份的沒更新.
對于數(shù)量級極大的一組數(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) 繪制圖形, 軟件便會自動退出. 對于其他正常的數(shù)據(jù), 繪圖時正常的.
使用的是 Deepin 操作系統(tǒng), 版本為 2.1.1.
目前 Windows 平臺下 3.0.1 版的軟件是不可以在終端下使用而只能啟動圖形界面了嗎?
使用 mesh 函數(shù)繪制曲面圖形,報錯提示錯誤使用 mesh 函數(shù),Z 必須為矩陣,不能是標(biāo)量或向量。
Deepin 系統(tǒng)版本為 2.1.1 上運行是沒有問題的,但在 Windows 11 系統(tǒng)版本為 3.0.3 上運行會出現(xiàn)上述錯誤。
clear; clc; % 空間步長 h = 0.01; % 時間步長 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("擴散方程初邊值問題的精確解") xlabel("x") ylabel("t")
另外,Deepin 的版本什么時候更新,半年前反饋的 Deepin 版本上的問題到現(xiàn)在還沒有修正。
操作系統(tǒng)為 Deepin20.9, 版本為開發(fā)者預(yù)覽版 Baltamatica_999-3.1.3-dev1.
在終端下啟動北太天元并使用繪圖函數(shù)會自動退出程序,提示需要先創(chuàng)建一個 QApplication 應(yīng)用。
操作系統(tǒng)為 Deepin20.9, 版本為開發(fā)者預(yù)覽版 Baltamatica_999-3.1.3-dev1.
繪圖后點擊左上角導(dǎo)出圖片保存為png格式,提示導(dǎo)出圖片失敗。
使用 symbolic 插件提供的 sym 命令創(chuàng)建符號變量 x 后,工作區(qū)不顯示任何變量信息
使用 whos 命令查看發(fā)現(xiàn)只有 ans 這個變量,且類型識別為 extern. 將這個 ans 賦值給 x 之后,無論參與運算工作區(qū)都是不顯示任何信息的,也就是工作區(qū)無法識別 extern 這種類型的變量。
目前將所有公布過的正式版本都安裝嘗試了一遍,都是這種情況。
操作系統(tǒng)為 Deepin20.9, 安裝的版本為 baltamatica_999_3.5.0_dev0
繪制一個周期的正弦曲線, 得到的圖如下, 坐標(biāo)軸上標(biāo)記的點已經(jīng)超出了圖像的大小.
操作系統(tǒng)是 Deepin V23, 輸入法使用的是 fcitx5. 從 3.5.0-dev1 開始試驗, 到最新的 3.6.1-dev1, 使用通用版的 Linux 安裝包安裝后, 均無法在編輯器中切換中文輸入法輸入中文.
3.1.3-dev1_Deepin20.9 在 Deepin V23 上安裝能夠正常切換中英文.
IQA 插件默認(rèn)使用的是 qwen2.5 模型,每次重新啟動軟件都需要重新使用 AIInit 初始化一下其他本地模型。建議增加修改默認(rèn)模型的功能。
首先生成一個測試文件,第一行類似于表頭,2到4行每行存儲3個數(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); % 是否到達文件末尾 (EOF) while ~feof(frid) line = fgetl(frid); disp(line); end fclose(frid);
該方法在北太天元中除了顯示文件中的3行數(shù)字,還會顯示一個-1,這個-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); % 如果到達文件末尾,則退出循環(huán) if feof(frid) break; end disp(line); end fclose(frid);
該方法在北太天元中輸出符合預(yù)期,但在 MATLAB 中只輸出兩行數(shù)據(jù)
也就是說,在北太天元中,讀取了 7 8 9 三個數(shù)后,需要再讀取一行才到末尾 (EOF),所以讀取到的 -1 沒有 disp;而在 MATLAB 中,讀取了之后已經(jīng)到末尾,雖然讀取了這三個數(shù),就跳出循環(huán)不再顯示。代碼中的 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 中輸出的結(jié)果分別是
測試文件共 5 行,前四行有內(nèi)容,第五行是空行,在 MATLAB 中,讀取完第四行就判斷為文件末尾,而在北太天元中,五行全部讀完才判斷是文件末尾。
無法讀取保存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
運行報錯, 提示不支持冒號運算符
1. 首先,針對北太天元所使用的 Python,安裝 pyttsx3 文本轉(zhuǎn)語音引擎:
load_plugin("Python"); pipcmd("install pyttsx3 -i https://pypi.tuna.tsinghua.edu.cn/simple/");
2. 使用如下函數(shù)初始化一個基于 pyttsx3 的 TTS 引擎并設(shè)置其參數(shù):
function [engine] = textToSpeech_pytts_init() % 獲取 Python 根對象用于調(diào)用 Python 函數(shù)等 py = pyroot; % 導(dǎo)入 pyttsx3 模塊 pyttsx3 = py.pyttsx3; % 初始化 TTS 引擎 engine = pyttsx3.init(); % 設(shè)置語音屬性 (可選) voices = engine.getProperty('voices'); % voices 是一個 py.list 對象 % 目前北太天元無法直接使用 length 獲取 py.list 的長度 % 只能暫時使用 Python 中的 len 來代替 for i = 1:py.len(voices) % 同樣, 北太天元中的 frompy 函數(shù)無法將 py.list 類型的 voices 轉(zhuǎn)化為內(nèi)置的數(shù)組 % 所以只能通過 pygetitem 函數(shù)來獲取每一個元素 voice = pygetitem(voices, i-1); if contains(string(voice.name), 'Chinese') % 查找支持中文的語音 engine.setProperty('voice', voice.id); break end if contains(string(voice.name), 'English') % 查找支持英文的語音 engine.setProperty('voice', voice.id); break; end end % 設(shè)置語速 (可選) engine.setProperty('rate', 150); % 默認(rèn)值為 200 % 設(shè)置音量 (可選) engine.setProperty('volume', 0.8); % 范圍是 0.0 到 1.0 end
3. 初始化引擎,并傳給引擎文本,讓引擎朗讀,或者保存音頻:
% 初始化 TTS 引擎 engine = textToSpeech_pytts_init(); % 設(shè)置要說的文本 text = "你好,我在北太天元中調(diào)用 Python 文本轉(zhuǎn)語音引擎!"; engine.say(text); % 保存為 WAV 文件 engine.save_to_file(text, "output.wav"); % 運行并等待語音完成 engine.runAndWait(); engine.stop()
這樣便可以聽見引擎朗讀的聲音,也可以在本地找到保存的 output.wav 文件。
本示例中的 textToSpeech_pytts_init() 函數(shù)參考 大預(yù)言模型(LLM)賦能具身智能中的人機交互 中 Python 模型集成一節(jié),并將無法在北太天元中運行的部分進行了修改。
本示例也參考了 Python使用總結(jié)之Python文本轉(zhuǎn)語音引擎:pyttsx3完全指南 如何使用 pyttsx3 庫。
對于這樣一組數(shù)據(jù), 每一列數(shù)據(jù)長度保持一致, 不足的采用空格補充; 數(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 讀取, 會出現(xiàn)以下兩個問題:
每行行首可能會出現(xiàn)空格, readmatrix 會得到第一個數(shù)據(jù)為 NaN;
數(shù)據(jù)與數(shù)據(jù)之間雖然都是空格, 但空格數(shù)量不統(tǒng)一, 有1個空格、2個空格和3個空格幾種情況。
所以使用 readmatrix 得到的數(shù)據(jù)列數(shù)不匹配,多分隔出來的數(shù)據(jù)全部都是 NaN.
對于上述兩個問題,MATLAB 中的 readmatrix 函數(shù)是可以輸入 "ConsecutiveDelimitersRule", "join" 把重復(fù)的分隔符合并成一個分隔符, "LeadingDelimitersRule", "ignore" 參數(shù)忽略行首的分隔符.