<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sOSystem的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sOSystem</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sOSystem]]></copyright><item><title><![CDATA[Nodejs 向前端响应 pdf 文件流]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/124985966</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/124985966</guid><author>sOSystem</author><pubDate>Thu, 26 May 2022 15:47:20 +0800</pubDate><description><![CDATA[需求是用户在前端点击一个按钮下载储存在服务器那边的 pdf 文件

以下是前后端分离的解决方法



前端部分：

首先需要 downloadjs 依赖


npm install downloadjs

向后端发送 ajax 请求。结合自己的需求，我这里是点击按钮后发起


axios
  .get('http://127.0.0.1:1919/api/getpdf',{
    headers: {
      'Content-Type': "multipart/form-data"
    },
 ]]></description><category></category></item><item><title><![CDATA[[TypeScript] 实现简单矩阵类(四则运算、行列式、逆矩阵...)]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/124712927</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/124712927</guid><author>sOSystem</author><pubDate>Wed, 11 May 2022 17:05:51 +0800</pubDate><description><![CDATA[Typescript 实现矩阵类，包含矩阵与矩阵的四则运算，矩阵与实数的乘法；矩阵的余子式与代数余子式计算，方阵的行列式计算，方阵的逆矩阵计算等。

对于是否是方阵没有作多于判断（懒

方法注释在代码中都有


class Matrix {
    private mm: Array&lt;Array&lt;number&gt;&gt;;
    private _row: number;
    private _col: number;

    /**
     * 可以使用一个二维数组赋值给 mat]]></description><category></category></item><item><title><![CDATA[[Vue3 + echarts] 实现动态表图]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/123488512</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/123488512</guid><author>sOSystem</author><pubDate>Mon, 14 Mar 2022 21:09:07 +0800</pubDate><description><![CDATA[echarts 中 init 步骤需要获取 dom 元素，但 vue3 中 setup 在 beforeCreate 和 created 之间执行，此时还没有 dom 元素。因此选择在 mounted 钩子中进行初始化

将配置项 options 设置成 reactive，并用 watch 侦听其数据变化


let options = reactive({
    ...
});

let myChart;
onMounted(() =&gt; {
  myChart = echarts.init(doc]]></description><category></category></item><item><title><![CDATA[[Vue3 + echarts] props传异步数据问题]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/123487058</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/123487058</guid><author>sOSystem</author><pubDate>Mon, 14 Mar 2022 20:12:04 +0800</pubDate><description><![CDATA[今天用 v3+echarts 写时遇到一个难题：父组件中通过 axios 获取数据，然后在父组件中加工一下传给子组件（图表组件），子组件通过 props 接收。

问题就出在似乎异步获取数据后子组件不能通过 setup 的 props 参数正确获取处理后的数据（已经配置好了props项），数据仍然为初始的空数组[]。

然后就突发奇想写出了一个很离谱的写法，竟然还成功了，


setup() {
    let data = ref(
      (() =&gt; {
        axios
    ]]></description><category></category></item><item><title><![CDATA[[Nodejs]解析表单数据(x-www-form-urlencoded)]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/122684757</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/122684757</guid><author>sOSystem</author><pubDate>Tue, 25 Jan 2022 14:35:44 +0800</pubDate><description><![CDATA[在解析x-www-form-urlencoded数据时，使用querystring提示已被弃用。查阅资料后得知可以使用 URLSearchParams 对象进行解析，代码如下


// 解析表单数据的全局中间件
app.use((req, res, next) =&gt; {
    let str = '';
    req.on('data', chunk =&gt; {
        str += chunk;
    })
    req.on('end', () =&gt; {
        ]]></description><category></category></item><item><title><![CDATA[[Matlab]约束最小二乘解决力的最优化问题]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/121898715</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/121898715</guid><author>sOSystem</author><pubDate>Mon, 13 Dec 2021 10:02:50 +0800</pubDate><description><![CDATA[这一整道题是关于约束最小二乘(CLS constrained least squares)的问题。



推导

CLS要解决的问题是：

最小化 

约束于 



目标函数为

是约束条件

最后要找到的一定满足

我们要找到的满足于 并且对任何满足于 的n维向量x都满足



可以将约束最小二乘想象成加权最小二乘的特殊情况

这是上一个实验中给出的加权目标函数：



改变为：



的形式，而对于，将它视为无穷大，因此对于这个加权最小二乘问题，能够...]]></description><category></category></item><item><title><![CDATA[[Matlab] AppDesigner获取鼠标在坐标区的点击位置]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/121025428</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/121025428</guid><author>sOSystem</author><pubDate>Thu, 28 Oct 2021 23:07:42 +0800</pubDate><description><![CDATA[function [x, y] = selectDataPoints(~, ax)
    roi = drawpoint(ax);
    x = roi.Position(1);
    y = roi.Position(2);
end


[x, y] = selectDataPoints(app, app.figArea);
]]></description><category></category></item><item><title><![CDATA[[C#] StringBuilder简介及使用方法]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/120357116</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/120357116</guid><author>sOSystem</author><pubDate>Fri, 17 Sep 2021 21:41:54 +0800</pubDate><description><![CDATA[C#中，StringBuilder弥补了string在赋值时开辟新空间不足之处。

StringBuilder类型变量会初始化一段长度，供后续对该变量进行增加。当然也可以手动定义其长度


StringBuilder builder = new StringBuilder(10);

其缺点是需要较为精确估算出StringBuilder类型变量的长度，否则若在使用中实际builder长度超出了定义的长度，会自动开辟一段新的StringBuilder空间，并将原先的数据赋值给新的空间，旧的地址就变成了垃圾。
]]></description><category></category></item><item><title><![CDATA[[SDL]VS2019下SDL环境配置注意点]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/120211273</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/120211273</guid><author>sOSystem</author><pubDate>Thu, 09 Sep 2021 22:25:19 +0800</pubDate><description><![CDATA[根据雷神教程中sdl的配置做下去还是会出现如下的问题，搜

1&gt;SDL2main.lib(SDL_windows_main.obj) : error LNK2019: 无法解析的外部符号 __imp__fprintf，该符号在函数 _ShowError 中被引用
1&gt;SDL2main.lib(SDL_windows_main.obj) : error LNK2019: 无法解析的外部符号 __imp____iob_func，该符号在函数 _ShowError 中被引用



查了一下是如下的问.]]></description><category></category></item><item><title><![CDATA[[ffmpeg]解码函数]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/120198959</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/120198959</guid><author>sOSystem</author><pubDate>Thu, 09 Sep 2021 13:06:19 +0800</pubDate><description><![CDATA[ffmpeg解码的数据格式：







ffmpeg数据结构分析：





以上图片来自雷神雷霄骅https://blog.youkuaiyun.com/leixiaohua1020



得到视频各基本参数的示例：


printf("视频流videoindex：%d 音频流audioindex：%d\n", videoindex, audioindex);
printf("AVFormatContext\n");
printf("输入视频的AVStream个数：%d\n", pFormatCtx-&gt...]]></description><category></category></item><item><title><![CDATA[Java异常处理Exception——银行余额不足实例]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/117194369</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/117194369</guid><author>sOSystem</author><pubDate>Sun, 23 May 2021 13:40:09 +0800</pubDate><description><![CDATA[问题：

编写一个程序，完成在银行的取款和存款操作。在定义银行类时，若取款大于余额则作为异常处理



MyException.java


package bank;

public class MyException extends Exception{
	public MyException(String msg) {
		super(msg);
	}
}


bankSystem.java


package bank;

import java.util.Scanner;

public cla.]]></description><category></category></item><item><title><![CDATA[Array.slice() JavaScript中的截取数组]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/117166882</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/117166882</guid><author>sOSystem</author><pubDate>Sat, 22 May 2021 17:29:20 +0800</pubDate><description><![CDATA[js中可以利用slice()来截取指定数组中的一段元素

实例如下


var arr = ['Hello', 'nice', 'to', 'meet', 'you'];

console.log(arr.slice(0, 2));
console.log(arr.slice(3));

运行结果





总结

slice()可以传入一个或两个参数（数字）

当传入两个参数时(分别用begin和end来表示)：arr(begin,end):返回由arr[begin]到arr[end-1]...]]></description><category></category></item><item><title><![CDATA[[预解析]关于JavaScript运行机制]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/117121886</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/117121886</guid><author>sOSystem</author><pubDate>Fri, 21 May 2021 15:21:06 +0800</pubDate><description><![CDATA[先来看几个例子（运行结果在代码段注释中）

1.


console.log(a); // 报错: a is not defined

2.


console.log(b); //undefined
var b = 10;

3.


//函数调用写在函数上下都可正常调用
fn();
function fn(){
    console.log(11);
}

4.


fun();//报错: fun is not a function
var fun = function() {
    console]]></description><category></category></item><item><title><![CDATA[JavaScript中声明变量使用 var 和不使用 var 的区别]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/117121331</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/117121331</guid><author>sOSystem</author><pubDate>Fri, 21 May 2021 14:51:38 +0800</pubDate><description><![CDATA[有过JavaScript基础的都知道，在js中声明一个变量可以用 var a = 10; 也可以使用 a = 10; 这两种声明方式，他们有什么区别呢

用如下的代码作为示例


function test(){
            var a = 10;
            b = 100;
        }
test();
console.log(b); //100
console.log(a); //a is not defined

运行结果如下






...]]></description><category></category></item><item><title><![CDATA[JavaScript函数返回多个值]]></title><link>https://blog.youkuaiyun.com/sOSystem/article/details/117092991</link><guid>https://blog.youkuaiyun.com/sOSystem/article/details/117092991</guid><author>sOSystem</author><pubDate>Thu, 20 May 2021 22:35:02 +0800</pubDate><description><![CDATA[学习了C C++ JAVA等语言后，最近尝试自学js，有很多相同之处，当然也有完全不同的地方

就比如说js能够在一个函数function中返回return多个值，这一点是我目前学到的语言中独一无二的，想把自己的学习心得记录下来

以此开始我在优快云上的学习记录


function getResult(num1, num2){
            return [num1+num2,num1-num2,num1*num2,num1/num2];
        }
        var resul]]></description><category></category></item></channel></rss>