matlab筆記

顯示中文幫助的方法

預設→常規→幫助→在mathworks.com網站上(需要Internet連接)→語言(簡體中文)


/:右除。a/b表示矩陣a乘以矩陣b的逆。a/b == a * inv(b)

\:左除。a\b表示矩陣a的逆乘以b。 a\b == inv(a) * b

./:右除。a./b表示矩陣a中的每個元素除以矩陣b的對應的元素。

.\:左除。a.\b表示矩陣b中的每個元素除以矩陣a的對應的元素。

.*點乘不是矩陣的乘法,是對應元素相乘。


1 MATLAB系統環境與設置

  • path函數,可以查看搜索路徑包含的所有路徑。
  • cd返回當前目錄。
  • userpath('路徑名')更改工作目錄。改好后用savepath保存路徑。
  • pathtool是界面工具,設置搜索路徑。

2 MATLAB的數據操作及語法

  • matlab變量區分大小寫,變量不聲明,拿來即用。
  • 回車表示一句語句結束,語句末尾有分號,只執行,不輸出在顯示欄。無分號則輸出執行結果。
  • 一行不夠寫的話,用...續行。
  • who顯示在工作空間中滯留的變量名,whos給出變量更詳細的信息。
  • clear命令清除工作空間中所有變量。clear a,清除變量a
  • 保存數據save [文件名] [變量名] [-append] [-ascii]
  • load [文件名] 載入變量文件
  • format數據輸出格式控制,只影響輸出格式,不影響計算和存儲,默認為short格式。
  • class()查看括號里變量的數據類型。

字符串

  • matlab中字符串使用單引號''括起來的。
  • double函數或abs函數可以獲取字符的ASCII值。
  • char(63)輸出ASCII碼為63代表的字符。
  • 字符串與數值間互換str2num, num2str
  • eval('t=1')執行字符串中的語句,也就是t=1語句。
eval()函數一個很好的功能就是可以自動生成一系列變量
注意eval()中拼接字符串外面要加中括號!
for x = 1:3
    eval(['a',num2str(x),' = 7'])
end
%% 相當于執行了下面三條語句
a1 = 7
a2 = 7
a3 = 7
  • 想要讓標題也自動編號,要注意在字符串內還想輸出單引號'的話,需要打兩個''
for y = 1:2
   eval(['title(''test',num2str(y),''');']);
end

結構體

  • 結構體.成員名=表達式
  • issturct(a)判斷a是不是結構體
  • fieldnames(a)返回a中所有成員的成員名,返回類型為字符串數組
  • isfield(a, 'x1')判斷x1是不是a結構體中的成員。
  • rmfield刪除結構體中某個成員。
  • getfield獲得結構體中的某個成員

Cell(單元或元胞)

  • 用大括號創建
    • a = {1, 'str', [11 22 33 44]}
  • 取元胞內容
    • 小括號()表示取出指定位置的元胞,還是個元胞,不能用于比較,否則很難找到錯誤。
    • 花括號 { } 取出的是元胞指定位置的內容,可以拿來做比較,或者借助 isempty 判斷是否為空。eg:if(~isempty(tagcity{i,j}))
    • 假設a元胞的第二個元素為[]既空元素,那么isempty(a(2)) 返回0,是一個錯誤的結果。只有寫isempty(a{2})才會返回1,得到正確的判斷。

3 MATLAB的矩陣操作

  • zeros函數建立0矩陣,幺矩陣ones函數建立元素全為1的矩陣。
  • 冒號表達式建立向量。
    • e1:e2:e3,其中e1位初始值,e2位步長,e3為結束
  • linspace(a, b, n)建立行向量,a和b分別為行向量的第一個和最后一個元素,n為總個數,省略n則默認是產生100個元素。

矩陣索引

  • A(2, 3)獲得A矩陣的第二行第三列的元素。
  • matlab矩陣存放是按列存的,先存完第一列,然后存第二列,也可以用單索引值索引。
  • find(A == 8)返回A矩陣中,值為8的元素的位置。
  • [m, n] = find(A == 8)返回的是行列索引的形式。
  • ind = find(A == 8)返回的是單值索引的形式。
  • 兩種索引值的轉換:ind = sub2ind(size(A), m, n)
  • [m, n] = ind2sub(size(A), 3)

重排矩陣

  • reshape(A, 9, 1)將A重新排列為9行1列的向量。轉換成列向量,也可以這樣H = A(:):這個執行效率更高。
  • 矩陣轉置用一個單引號‘

矩陣拆分

  • 獲得矩陣中某行某列的部分內容。
  • M = A(1, :)獲得A矩陣中第一行的所有內容。
  • M = A(1, 1:2)獲得A矩陣的第一行中的第一列到第二列
  • M = A(1, 1:end)獲得A矩陣的第一行中的第一列到最后一列
  • M = A(1, 1:end - 1)獲得A矩陣的第一行中的第一列到倒數第二列
  • M = A([1 2], [1 2])獲得A矩陣中的第一行第一列,第一行第二列,第二行第一列,第二行第二列。
  • P = A(2:3, 1:3)和P = A([2 3], [1 2 3])效果一樣。

刪除矩陣元素

  • 若M是一個一維向量,M(2) = []刪除了M的第二個元素。
  • A(1, :) = []刪除A矩陣的第一行所有元素。
  • 上面方法可以看成索引矩陣的賦[]值操作。

擴展矩陣

  • Q = repmat(A, 2, 2),將矩陣A看著一個大整體元素,然后復制成兩行兩列。

壓縮矩陣,去除重復元素

  • S = unique(R)去除R中重復的元素,但重新排序了。unique還有其他使用形式可查看help。
  • unique(R,'stable'),去重且不重新排序。

4 MATLAB矩陣處理基礎

特殊矩陣建立
矩陣和向量運算
線性方程組求解
矩陣的相似化簡和分解
矩陣和向量的范數
矩陣分析

  • 單位矩陣函數eye

  • 隨機矩陣函數rand

  • 從0到10間均勻分布,s = 0 + (10 - 0) * rand(10,1)

  • 從a到b直接均勻分布的隨機數S = a + (b - a) * rand

  • randn產生均值為0,方差為1的隨機數。

  • 產生均值為u,方差為s的正態分布的隨機矩陣, y = u + sqrt(s)*randn

  • mean獲得序列的均值

  • std獲得序列的方差

  • 魔方矩陣用magic函數

  • Hilbert矩陣用hilb函數,每個位置的元素為1/(i + j)

  • Toeplitz矩陣用toeplitz函數

  • 求矩陣A行列式的值det(A)

  • 如果行列式的值不為0 ,則可求矩陣的逆inv(A)

  • 復數可以直接用i或j表示

  • b的共軛可以用conj(b)函數,如果是復數向量直接用轉置b'也表示共軛

  • 內積運算可用dot()函數

  • 若a,b為兩個同緯行向量,這三個等式結果一致:

  • s = sum(conj(b).*a)

  • s = a*b'

  • s = dot(b, a)

線性方程組的求解,也可以用左除運算符,效率比較高。

A = [1, 2, 3; 1, 4, 9, 1 8 27];
b = [5, -2, 6]'
x = inv(A)*b
x = A\b    %%解出結果與上一行相同
  • 用jordan(A)獲得矩陣A的約旦標準型。

  • [V J] = jordan(A) 得到V為A的相似變換矩陣,J就是約旦標準型。

  • eig函數可以獲得矩陣的特征值。

  • [E D] = eig(A) 得到E為特征向量,D中主對角線為特征值其余為0。

  • 1范數,2范數,無窮范數以及f范數,都統一使用norm函數。

norm(A, 1)      %1范數
norm(A, 2)      %2范數
norm(A, inf)    %無窮范數
norm(A, 'fro')  %f范數

矩陣分析:

  • MATLAB中函數的計算,比如求導數,默認是對每個元素求導。

    • 求導函數diff(A)
    • 求二階導數diff(A, 2)
  • 建立符號x,類似于代數。

    • syms x
  • 矩陣函數,計算矩陣函數eA,sinA,cosA,使用funm函數,使用方法如下:

S = funm(A, @fun);

A = [0 1; 0 -2];
expA = funm(A, @exp)
expA = expm(A)  %結果同上
sinA = funm(A, @sin)
cosA = funm(A, @cos)

5 MATLAB程序控制結構

  • M文件分類:命令文件(Script File)、函數文件(Function File)。
  • 命令文件沒有輸入,沒有返回;命令文件可以對工作空間的變量操作,結果返回工作空間,而函數文件中的變量為局部變量,函數執行完畢,變量被清除。

順序結構

  • 用于順序結構中的輸入和輸出(命令交互):
    • 數據輸入(input函數)
    • 數據顯示(disp函數)
    • 程序暫停(pause函數),設計界面動畫時候經常使用。

分支(選擇)結構

  • y = cos(x(find(x < 10)));這樣寫沒有用分支結構,直接用了索引找到所有x向量中x值小于10的下標,然后對這些數據進行求余弦操作。
x = input('x');
if x < 10
    y = log(x);
else
    y = cos(x);
end
%多分支if語句
c = input('input a character', 's');
if c >= 'A' & c <= 'Z'
    disp(char(abs(c) + abs('a') - abs('A')));
elseif c >= 'a' & c <= 'z'
    disp(char(abs(c) - abs('a') + abs('A')));
elseif c >= '0' & c <= '9'
    disp(c);
end
%switch分支,在1000不同價格范圍有不同的折扣rate
price = input('input price');
switch fix(price/100)
    case {0, 1}   %可以用單元結構表示當判斷條件為0或1的時候
        rate = 0;
    case {2, 3, 4}
        rate = .03;
    case {5, 6, 7, 8, 9}
        rate = .05;
    otherwise
        rate = .1; 
end
  • try是試探性的分支語句,也就是如果這條語句執行有錯誤,則不執行,或者執行其他的語句,提高了程序的容錯性能。如果下面語句組1有錯誤,則執行語句組2。
try
    語句組1
catch           %可沒有
    語句組2    %可沒有
end
  • 比如需要刪除某個變量,但是不知道這個變量有沒有,如果直接使用clear或者delete命令,那么這個變量有的話可以,如果這個變量沒有呢,那么就出錯了,程序就終止了,在一個大程序中,這樣是不利的。

循環結構

  • for循環的常用語法如下,當然也可以for 循環變量 = 矩陣,這樣每次循環,矩陣的每一列就會進入循環體一次。
for 循環變量 = 表達式1:表達式2:表達式3
    循環體
end
  • 注意循環變量自動增加,在循環體內不要對循環變量進行賦值操作,否則結果不可預料。
  • matlab中的for循環中最好不使用i,j做循環變量。
% for循環
A = 1:100;
sumA = 0;
for k = 1:100
    sumA = sumA + A(k);
end
  • while循環
while 條件
    循環體
end
%while循環,下面實現輸入字符再輸入回車繼續執行,直接輸入回車退出循環
while 1
    c = input('input a character', 's')
    if isempty(abs(c))  %isempty函數判斷是否為空,輸入回車也是空
        break;
    end 
end
  • matlab中要避免使用兩重以上循環,否則效率很低。
  • 怎樣避免使用循環和提高循環效率?
    • ★有些可以通過matlab的矢量化語言,通過矩陣或者向量操作完成。
    • ★有些可以通過matlab提供的一些特殊工具箱函數完成。
    • ★預分配的使用,會大大增加循環效率。

6 MATLAB的編輯器和程序調試

函數文件

function [輸出形參] = 函數名([輸入形參])
[注釋說明]     %用help或lookfor查看函數幫助即顯示這部分內容
函數體
  • 通常函數文件名和函數名一致,如果不一致,忽略函數名,調用時使用函數文件名。
  • 選中多行內容可以用Ctrl+R注釋,用Ctrl+T取消注釋。

函數參數可調標識變量

nargin
nargout
varargin
varargout

  • 可以完成傳遞參數的可調功能,類似于其它高級語言中的函數重載和多態。
  • 前兩者為輸入輸出參數個數,后兩個可以代表未知的輸入輸出變量。
function re = add_multi(a, b, c, d)
%輸入參數可調的函數范例
if nargin == 4
    re = a + b + c + d;
elseif nargin == 3
    re = a + b + c;
elseif nargin == 2
    re = a + b;
else
    error('wrong');
end
function [a, b] = add_mu(c, d, e, f)
%輸出參數可調范例
if nargout == 2
    a = c + d + e + f;
    b = c * d * e * f;
else
    a = c + d + e + f;
end
function re = add_var(a, b, varargin)
%輸入參數個數未知范例
if nargin == 2
    re = a + b;
elseif nargin == 3    
    c = varargin{1}; %用元胞數組來操作
    re = a + b + c;
else
    re = a + b;
    for k = 1:(nargin-2)
    re = re + varargin{k};
    end
end
  • error(nargchk(2, 4, nargin)),檢測參數輸入范圍最小兩個,最大4個,如果不是這個范圍則輸出錯誤信息。
  • 關于varargout的用法可以參考工具箱函數,輸入edit pburg可以看。

全局變量

  • 使用global聲明,可以提供不同的M文件訪問同一個變量。在每個文件中都要聲明。

調試

  • >>執行狀態,K>>調試狀態

7 MATLAB繪圖功能(1) 二維高層繪圖操作

  • 基本函數plot

  • 二維繪圖的輔助操作:

    • 標注(圖形名稱,坐標軸名稱,曲線標注,圖例)
    • 坐標軸控制
    • 圖形保持(同一坐標軸繪制多個圖形)
    • 窗口分割(同一個窗口有多個坐標軸)
  • plot(x, y)基本要求:x和y為相同長度的向量,但也有特殊用法:

    • x為向量,y為矩陣,其中一維與x長度相同,則繪制多條不同顏色的曲線(顏色確定涉及到底層繪圖操作)
    • x和y為同維矩陣,以對應列繪制不同色彩的曲線
    • 若plot只有一個參數,若x為實數向量,則繪制折線圖;若為復數向量,則以實部和虛部為橫縱坐標繪圖
    • 多個輸入參數
    • 曲線選項
% 基本繪圖操作,繪制一個正弦函數
x = 0:0.01:2*pi;
y = sin(x);
plot(x, y);
% y是矩陣的情況
y1 = sin(x);
y2 = cos(x);
z = [y1; y2];
plot(x, z);

%兩個參數都是矩陣
x1 = 0:0.01:2*pi;
x2 = -pi:0.01:pi;
x = [x1; x2];
y1 = cos(x1);
y2 = sin(x2);
y = [y1; y2];
plot(x, y);

% 上面是使用了每列進行繪圖,這樣繪制了很多條曲線。
% 如果想要使用每一行來繪圖,
% 那么需要將x和y進行轉置,
% 就繪制了一條從0到2π的余弦,
% 一條從-π到π的正弦
x1 = 0:0.01:2*pi;
x2 = -pi:0.01:pi;
x = [x1; x2]';
y1 = cos(x1);
y2 = sin(x2);
y = [y1; y2]';
plot(x, y);

% plot只有一個參數
x = linspace(0, 2*pi, 200);
y = sin(x);
plot(y);   %繪出正弦
y2 = cos(x);
y3 = y + i*y2;
plot(y3);  %繪出一個橢圓,坐標軸控制axis equal命令可變成一個圓
% plot只有多個參數
x1 = linspace(0, 2*pi, 200);
x2 = linspace(0, 2*pi, 100);
y1 = cos(x1);
y2 = sin(x2);
plot(x1, y1, x2, y2);  %不同長度的曲線同時繪制
% plot含有的曲線選項
plot(x, y, 'k');   %r紅色,k黑色,g綠色,y黃色,m品紅,b藍色
plot(x, y, '*');   %用'*'來繪圖,是離散的圖。同理.是點,'p'是五角星,'<' ,'>'是三角星,'--'虛線,'-.'是線和點,':'很小的虛線
plot(x, y, 'r*');  %顏色和線型的結合
%圖形標注
plot(x , y);
xlabel('x');
ylabel('y');
title('正弦');
text(2, 0.3, 'y = sin(x)');  %在某個位置顯示字符串
legend('cos', 'sin');  %繪制圖例
  • matlab中可以用LaTex字符,字符串'x_2'顯示出來是x2

坐標軸控制

  • axis equal
  • axis square
  • axis auto
  • axis off
  • axis on
  • axis([xmin xmax ymin ymax])
  • xlim([xmin xmax])
  • ylim([ymin ymax])

圖形保持

  • hold on
  • 關閉圖形保持hold off

窗口分割

%窗口分割
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
y3 = tan(x);
y4 = exp(x);
subplot(2, 2, 1)  %將窗口分成兩行兩列4格,繪制第一格
plot(x, y1);
subplot(222)  %繪制第二格
plot(x, y2);
subplot(223)
plot(x, y3);
subplot(224)
plot(x, y4);

8 MATLAB繪圖功能(2) 二維底層繪圖修飾

  • matlab把構成圖形的各個基本要素稱為圖形對象,產生每一個圖形對象時,matlab會自動分配一個唯一的值用于表示這個對象,稱為句柄。
  • 對象間基本關系:計算機屏幕 → 圖形窗口 → (用戶菜單,用戶控件,坐標軸)
  • 坐標軸 → (曲線,曲面,文字,圖像,光源,區域,方框)
  • line函數普通用法和plot相同 h = line([-pi:0.01:pi], sin([-pi:0.01:pi]));
hl = line('XData', [-pi:0.01:pi], 'YData', sin([-pi:0.01:pi]),...
    'LineWidth', 1, 'LineStyle', ':', 'Color', 'r');
hl = line('XData', [-pi:0.01:pi], 'YData', sin([-pi:0.01:pi]),...
    'LineWidth', 1, 'LineStyle', ':', 'Color', 'r');
set(hl, 'LineWidth', 2, 'Marker', 'p', 'MarkerSize', 15);
  • text對象返回一個句柄后。也可以用set來更改設置。修飾屬性: Color,String, FontSize,Rotation。

底層坐標軸控制

  • axes對象和axes函數
  • 修飾:
    • Box屬性,
    • GridLineStyle屬性,網格的線型,默認是虛線
    • Position屬性
    • Units屬性,當該屬性為normalized時,子窗口隨父窗口變化而變化。
    • XLabel、YLabel和ZLabel屬性
    • Xlim、Ylim和Zlim屬性
ha = axes;
get(ha)   %獲得坐標軸屬性
hf = figure;
ha = axes('Parent', hf, 'Unit', 'normalized', 'Position', [.1 .1 .6 .5]);

9 MATLAB Notebook使用簡介

  • 方便matlab代碼直接移到word,方便寫文檔。
  • 在Notebook中,需要運行的代碼部分要設置為“輸入單元”,使用綠色加粗Courier New字體顯示;
  • 定義輸入單元,可以使用Notebook菜單,或者組合鍵“Alt+D”;
  • 定義輸入單元之后,選擇Notebook菜單中的“Evaluate Cell”或者組合鍵“Ctrl+Enter”執行單元,輸出直接在相應輸入單元之后顯示,使用藍色Courier New字體顯示。
  • 自動初始化單元可以在打開Notebook時自動執行,這樣可以快速恢復所需要的工作空間。
  • 定義方式:選擇需要定義的單元,選擇Notebook菜單中的“Define AutoInit Cell”。
  • 定義為自動初始化的單元使用藍色加粗Courier New字體顯示

10 MATLAB符號運算

  • 符號計算基礎
    • 符號常量和符號變量
    • 符號四則運算
    • 符號表達式的化簡
    • 符號矩陣運算
  • 符號函數
    • 極限
    • 微分
    • 積分
  • 符號級數
  • 符號方程求解
    • 代數方程
    • 微分方程
a = sym('a');  %符號變量
syms a;        %同上
c = sym('3');  %符號常量
f1 = '3 * x + 4';
class(f1)      %得到類型為char
 
syms x
f2 = 3 * x + 4;
class(f2)      %得到類型為sym
 
f3 = sym('3 * y + 4');
class(f3)      %得到類型為sym
 
f4 = f1 + f2;   %得到f4 = 6*x + 8
class(f4)       %得到類型為sym
  • 符號四則運算有 + - * / ^

符號表達式化簡

  • simplify
  • simple用了很多規則來化簡,都列了出來,包含simplify

符號表達式與數值的轉化用

  • sym 數值轉化為符號
  • eval 將符號變量轉化為數值變量

符號表達式的分解展開合并

  • factor因式分解
  • expand因式展開
  • collect合并同類項
syms a b x y;
f1 = a^3 - b^3;
factor(f1)    %得到[ a - b, a^2 + a*b + b^2]
f2 = (3*x^2 + 8*y^2)*(-x^2 + 3*y);
expand(f2)    %得到- 3*x^4 - 8*x^2*y^2 + 9*x^2*y + 24*y^3
f3 = 3*x^2 + 4*x^2 + 5*x^2*y;
collect(f3)   %得到(5*y + 7)*x^2

符號矩陣

  • 構建方式與數值矩陣一致
  • 轉置和行列式:transpose determ
  • 其它使用在數值矩陣中的函數也可以直接用于符號矩陣
  • 注意:
    • 用transpose(A)的轉置相當于AT
    • 直接使用單引號‘的轉置相當于A的共軛轉置,即AH

符號函數

  • 用符號函數計算得到的結果類型是sym,如果還需要數值用eval轉換一下!
syms x
f1 = x^3 - 9;
subs(f1, 3)  %用3來代替原來f1中符號的位置來計算
 
y = (sin(x + a) - sin(x - a)) / x;
limit(y, 0)  %求極限,當x趨于零時,y的值
 
y2 = sqrt(1 + exp(x));
diff(y2)     %求解差分
diff(y2, 2)  %求解2階導數
diff(y2, 3)  %求解3階導數
 
y3 = (3 - x^2)^3;
int(y3)     %求解不定積分
 
y4 = abs(1 - x);
int(y4, 1, 2)  %求解定積分

符號級數

  • 符號級數求和symsum,泰勒級數taylor
syms n
f = 1/n^2;
s1 = symsum(f, n, 1, inf)  %4個參數意義依次是:第一是通項,第二個規定哪個參數作為求和變量,第三第四參數表示在求和范圍
% 泰勒展開
syms x
y = (1 + x + x^2)/(1 - x + x^2);
taylor(y,'order',6)

符號方程求解

  • 符號代數方程和方程組solve
  • 符號常微分方程dsolve,其中D3y表示與的三階導數,Dy表示y的一階導數。
% 方程組,可用=號形式,也可移項到等號同意一邊,表示等于0
[x y] = solve('1/x^3 + 1/y^3 = 28', '1/x + 1/y -4', 'x, y')
% 微分方程
dsolve('Dy - (x^2 + y^2)/x^2/2', 'x')

參考《MATLAB基礎視頻》 作者:lskyp

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,185評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,656評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,647評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,446評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,951評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,189評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,718評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,800評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,419評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,420評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,755評論 2 371

推薦閱讀更多精彩內容