1.Scilab
其实本人对Matlab是最喜欢的,但是,可能有一些正版情节,没办法,谁不想自己的电脑上全是“正版”软件(当然包括Windows系统),可惜,开发公司必须要运营,得要钱,所以,一些高质量软件收费也能接受(不过还是期望都有Education学生版).
/* No.20210909 SCI.LAB */ clear; close; clc; C1 = 3.742*10^-16; C2 = 1.4388*10^-2; deff('[z]=f(x,y)','z=C2/(x*log(1+C1/(y*x^5)))'); Tusef = 800:50:1200; /* A = rand(10,10); B = sprand(100,100,0.1); savematfile('test_matfile_org.mat','A','B','-v6'); */ loadmatfile('test_matfile_org.mat'); loadmatfile('test_matfile.mat'); Deviation = zeros(1,1667); TpUsel = 1000; loadmatfile('Averagespectru\T'+string(TpUsel)+'.mat'); loadmatfile('Averagespectru\K.mat'); loadmatfile('Averagespectru\B.mat'); for i=1:1667 Isele = (SpecAve(i)-Bvar(i))/Kvar(i); Deviation(i) = abs(f(Wavrandom(i),Isele)-273.15 - TpUsel); end figure(); plot(Wavrandom,Deviation); UnitDevi = zeros(1,1667); for i=1:1667 IseleFont = (SpecAve(i)-Bvar(i))/Kvar(i); IseleBack = (SpecAve(i)+1-Bvar(i))/Kvar(i); UnitDevi(i) = abs(f(Wavrandom(i),IseleBack) - f(Wavrandom(i),IseleFont)); end figure(); plot(Wavrandom,UnitDevi);
Scilab相较于Matlab拥有自己独特的一些“语法特性”,比如函数的定义,但同时拥有绝大多数(可以说是)相同的语法特性,因此,对于熟用Matlab的人来说,上手是极其快速的,不过网上的可供查询的参考相对较少,这里,只是试一试,上面的代码是Matlab上移植下来的,总体来说变化不是很大,有趣,o(*^@^*)o.
2.Octave
clear; close; clc; C1 = 3.742*10^-16; C2 = 1.4388*10^-2; Temtr = @(Walen,Irradi)(C2/(Walen*log(1+C1/(Irradi*Walen^5)))); Tusef = 800:50:1200; Wavrandom = load('Averagespectru\wavelength').WaveLeg; Deviation = zeros(1,1667); TpUsel = 1000; Irri = load(['Averagespectru\T',num2str(TpUsel),'.mat']).SpecAve; Kv = load('Averagespectru\K.mat').Kvar; Bv = load('Averagespectru\B.mat').Bvar; for i=1:1667 Isele = (Irri(i)-Bv(i))/Kv(i); Deviation(i) = abs(Temtr(Wavrandom(i),Isele)-273.15 - TpUsel); end figure(); plot(Wavrandom,Deviation); UnitDevi = zeros(1,1667); for i=1:1667 IseleFont = (Irri(i)-Bv(i))/Kv(i); IseleBack = (Irri(i)+1-Bv(i))/Kv(i); UnitDevi(i) = abs(Temtr(Wavrandom(i),IseleBack) - Temtr(Wavrandom(i),IseleFont)); end figure(); plot(Wavrandom,UnitDevi); save('test_matfile.mat','Wavrandom','-v6'); Status = load('test_matfile.mat','Wavrandom'); Strtes = string(2000);
该软件完全支持直接运行.m文件,可以说是不想学习新式语法的人的福音,如果你有想法,比如想来点新潮的,这绝对是可以尝试的一个选择,免费的,谁不想试试呢?可以和Matlab形成强有力的配合(尽管我认为Matlab已经完全可以满足绝大多数的工作,ヾ(≧ ▽ ≦)ゝ).
当然,其中些许问题和注意事项需要在尝试中解决,动动手比空想要靠谱的多!
3.Thoughts recently
最近总是会时不时想起小时候的一些情景,可能是真的长大了(在长大,但是不想长大,内心有一种“无形的”在抵触长大的事实),世界变复杂了还是我们长大了?
#include <iostream> #include <string.h> #include <math.h> #include <vector> /* Test example as 7 6 A12C3D4E56 A1B2345C6D */ using namespace std; #define MAX 1000 void DFS(string str,string st,int flag,vector<string> &record,int cnt) { if(cnt==str.length()) { record.push_back(st); return; } if(flag==1) { st.push_back(str[cnt]); } DFS(str,st,0,record,cnt+1); DFS(str,st,1,record,cnt+1); } int main() { string str1,str2; cin >> str1; cin >> str2; vector<string> rec1; vector<string> rec2; string st1; string st2; DFS(str1,st1,0,rec1,0); DFS(str1,st1,1,rec1,0); for(int i=0;i<rec1.size();i++) { cout << rec1.at(i) << endl; } DFS(str2,st2,0,rec2,0); DFS(str2,st2,1,rec2,0); int MATPL = 0; for(int i=0;i<rec1.size();i++) { for(int j=0;j<rec2.size();j++) { if(rec1.at(i)==rec2.at(j)) { int tp = rec1.at(i).length(); MATPL = max(MATPL,tp); } } } cout << MATPL; }
其实,熟练掌握的基础上,或许还需要一些思考时间加上些许外部参考,才能实现想要达成的目标——“解决问题”,但是,熟练掌握是基础,发挥往往是建立在夯实的基础之上的(再加上一点自信,Confidence).