【数据分析】通过python分析提取matlab工作区中的数据

#%%
import scipy.io
import pandas as pd
import numpy as np# Load the .mat file
file_path = 'clay_C.mat'
mat_data = scipy.io.loadmat(file_path)## 建立结果表格
# 定义行、列名
columns = ['0.1', '0.5', '1', '2', '3', '4', '5']
index = ['0.1', '0.5', '1', '2', '3', '4', '5']my_psnrs_mean = pd.DataFrame(np.nan,index = index, columns=columns)my_ssims_mean = pd.DataFrame(np.nan,index = index, columns=columns)my_fsims_mean = pd.DataFrame(np.nan,index = index, columns=columns)my_ergas_mean = pd.DataFrame(np.nan,index = index, columns=columns)
#%%
# 假设MAT文件中包含一个名为'C'的数据变量
data = mat_data['C']
#%%
# 将数据转换为DataFrame
df = pd.DataFrame(data)
df = df.transpose()
#%%
for i in range(len(df)):row = df.iloc[i][0]my_df = pd.DataFrame(row)psnrs_mean = my_df.iloc[0,0][0][-1]ssims_mean = my_df.iloc[0,1][0][-1]fsims_mean = my_df.iloc[0,2][0][-1]ergas_mean = my_df.iloc[0,3][0][-1]tau_1 = my_df.iloc[0,4][0][-1]tau_2 = my_df.iloc[0,5][0][-1]my_psnrs_mean.loc[str(tau_1),str(tau_2)] = psnrs_meanmy_ssims_mean.loc[str(tau_1),str(tau_2)] = ssims_meanmy_fsims_mean.loc[str(tau_1),str(tau_2)] = fsims_meanmy_ergas_mean.loc[str(tau_1),str(tau_2)] = ergas_mean
#%%
my_psnrs_mean*10
#%%
my_ssims_mean*10
#%%
my_fsims_mean*10
#%%
my_ergas_mean*10

代码详细分析

这段代码从MAT文件中读取数据,并将其转换为多个Pandas DataFrame,以便进行后续的分析和处理。以下是代码的详细分析:

1. 导入库和读取MAT文件

import scipy.io
import pandas as pd
import numpy as np# Load the .mat file
file_path = 'clay_C.mat'
mat_data = scipy.io.loadmat(file_path)

这里使用了scipy.io.loadmat函数来读取MAT文件,并将其存储在变量mat_data中。

2. 建立结果表格

# 定义行、列名
columns = ['0.1', '0.5', '1', '2', '3', '4', '5']
index = ['0.1', '0.5', '1', '2', '3', '4', '5']my_psnrs_mean = pd.DataFrame(np.nan,index = index, columns=columns)
my_ssims_mean = pd.DataFrame(np.nan,index = index, columns=columns)
my_fsims_mean = pd.DataFrame(np.nan,index = index, columns=columns)
my_ergas_mean = pd.DataFrame(np.nan,index = index, columns=columns)

这里创建了四个空的DataFrame来存储结果,每个DataFrame的行和列都是['0.1', '0.5', '1', '2', '3', '4', '5']

3. 提取数据并转换为DataFrame

# 假设MAT文件中包含一个名为'C'的数据变量
data = mat_data['C']# 将数据转换为DataFrame
df = pd.DataFrame(data)
df = df.transpose()

从MAT文件中提取名为'C'的数据变量,将其转换为Pandas DataFrame,并对其进行转置。

4. 迭代每一行并提取指标

for i in range(len(df)):row = df.iloc[i][0]my_df = pd.DataFrame(row)psnrs_mean = my_df.iloc[0,0][0][-1]ssims_mean = my_df.iloc[0,1][0][-1]fsims_mean = my_df.iloc[0,2][0][-1]ergas_mean = my_df.iloc[0,3][0][-1]tau_1 = my_df.iloc[0,4][0][-1]tau_2 = my_df.iloc[0,5][0][-1]my_psnrs_mean.loc[str(tau_1),str(tau_2)] = psnrs_meanmy_ssims_mean.loc[str(tau_1),str(tau_2)] = ssims_meanmy_fsims_mean.loc[str(tau_1),str(tau_2)] = fsims_meanmy_ergas_mean.loc[str(tau_1),str(tau_2)] = ergas_mean

遍历DataFrame的每一行,并提取每行的各项指标值。具体操作如下:

  • 将每一行的第一个元素转换为新的DataFrame my_df
  • 提取 psnrs_meanssims_meanfsims_meanergas_meantau_1tau_2 值。
  • 将这些值填入相应的结果DataFrame中,使用tau_1tau_2作为索引。

5. 打印结果

my_psnrs_mean*10
my_ssims_mean*10
my_fsims_mean*10
my_ergas_mean*10

这里将每个结果DataFrame中的值乘以10并显示出来。

总结

该代码的主要目的是从MAT文件中读取数据,并将其中包含的各种性能指标提取出来,存储到多个Pandas DataFrame中。每个结果DataFrame的行和列是tau_1tau_2的组合,存储对应的psnrs_meanssims_meanfsims_meanergas_mean值。

原代码

%SpaTRPCA_BSDtest200_5method_Corr10
clear;clc;close all
addpath(genpath('lib'));
addpath(genpath('data'));
addpath(genpath('competing methods'));rhos = 0.1; %Percent of corrupted pixels% %% Options settings
% opts.mu = 1e-2;
% opts.tol = 1e-6;
% opts.rho = 1.1;
% opts.max_iter = 500;0
% opts.DEBUG = 0;
% opts.tau_F= 2;method='TCTV';datadir = 'data/CAVE_USED';
seqs = dir(datadir);
seq3 = seqs(3:end); 
n_img=length(seq3);temp=zeros(n_img,1);psnrs_TCTV=temp;psnrs_FTCTV=temp;psnrs_HTCTV=temp; psnrs_CTCTV=temp; psnrs_WTCTV=temp; psnrs_GTCTV=temp; ssims_TCTV=temp;ssims_FTCTV=temp;ssims_HTCTV=temp; ssims_CTCTV=temp; ssims_WTCTV=temp; ssims_GTCTV=temp; fsims_TCTV=temp;fsims_FTCTV=temp;fsims_HTCTV=temp; fsims_CTCTV=temp; fsims_WTCTV=temp; fsims_GTCTV=temp; ergas_TCTV=temp;ergas_FTCTV=temp;ergas_HTCTV=temp; ergas_CTCTV=temp; ergas_WTCTV=temp; ergas_GTCTV=temp; sams_TCTV=temp;sams_FTCTV=temp;sams_HTCTV=temp; sams_CTCTV=temp; sams_WTCTV=temp; sams_GTCTV=temp; times_TCTV=temp;times_FTCTV=temp;times_HTCTV=temp; times_CTCTV=temp; times_WTCTV=temp; times_GTCTV=temp; Temp=cell(length(seq3),1);
Orig_Multi=Temp;Noisy_Multi=Temp;TCTV_Multi=Temp;FTCTV_Multi=Temp;HTCTV_Multi=Temp;CTCTV_Multi=Temp;WTCTV_Multi=Temp;GTCTV_Multi=Temp;C = cell(1,20);
iter=1;
sum_iter = 50;
sum_time = 0;
% for tau_1 = [1,2,3,4,5,6,7,8,9,10]
% for tau_1 = [0.1,0.2,0.3,0.4,0.5]
for tau_1 = [0.1, 0.5, 1, 2, 3, 4, 5 ]
% for tau_2 = [1,2,3,4,5,6,7,8,9,10]
% for tau_2 = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]
for tau_2 = [0.1, 0.5, 1, 2, 3, 4, 5]
start_tic = tic;
%% Perform recovery
for i = 5% 1 for balloons  2 for beads% 3 for cd        4 for chart% 5 for clay      6 for cloth% 7 for egyptian  8 for feathers% 9 for flowers   10 for glass%% load datafname = seq3(i).name;pic_TNN_Weight_Lame = [datadir '/' fname];load(fname)%% 0-1 Centralizationdata_min = min(X(:));data_max = max(X(:));X = (X - data_min) / (data_max - data_min);%% add noise
%     [n1,n2,n3] = size(X);
%     Xn = X; Yn=reshape(Xn,[n1*n2,n3]);
%     ind = find(rand(n1*n2,1)<rhos);
%     Yn(ind,:)=rand(length(ind),n3);
%     Xn=reshape(Yn,[n1,n2,n3]);[height, width, band] = size(X);for ii = 1:bandXn(:,:,ii) = imnoise(X(:,:,ii), 'salt & pepper', rhos);endmethods_index = 1;%% Method 1: TCTV
%     disp('......Run TCTV......')
%     opts = [];
%     opts.rho = 1.25;
%     opts.directions = [1,2,3]; % consider the lowrankness and smoothness both along the spatial and spectral directions
%     tic
%     Xhat_TCTV = TCTV_TRPCA(Xn, opts);
%     times_TCTV(i) = toc;
%     [psnrs_TCTV(i), ssims_TCTV(i), fsims_TCTV(i), ergas_TCTV(i), sams_TCTV(i)] = HSI_QA(X * 255, Xhat_TCTV* 255);
% %     TCTV_psnr = psnr(X , Xhat_TCTV);
%     Xhat{methods_index}=Xhat_TCTV;
%     div{methods_index}=1-abs((X-Xhat_TCTV));
%     methods_index = methods_index+1;%     %% Method 2: FTCTV  Enhanced Fair 
%     disp('......Run FTCTV......')
%     opts = [];
%     opts.rho = 1.25;
%     opts.directions = [1,2,3]; % consider the lowrankness and smoothness both along the spatial and spectral directions
%     opts.tau_F=[tau_1 tau_1, tau_1];
%     opts.tauL1=tau_2;
%     tic
%     Xhat_FTCTV = FTCTV_TRPCA(Xn, opts);
%     times_FTCTV(i) = toc;
%     [psnrs_FTCTV(i), ssims_FTCTV(i), fsims_FTCTV(i), ergas_FTCTV(i), sams_FTCTV(i)] = HSI_QA(X * 255, Xhat_FTCTV * 255);
%     Xhat{methods_index}=Xhat_FTCTV;
%     div{methods_index}=1-abs((X-Xhat_FTCTV));
%     methods_index = methods_index+1;
% 
%     %% Method 3: HTCTV  Enhanced Huber
%     disp('......Run HTCTV......')
%     opts = [];
%     opts.rho = 1.25;
%     opts.directions = [1,2,3]; % consider the lowrankness and smoothness both along the spatial and spectral directions
%     opts.tau_F=[tau_1 tau_1, tau_1];
%     opts.tauL1=tau_2;
%     tic
%     Xhat_HTCTV = HTCTV_TRPCA(Xn, opts);
%     times_HTCTV(i) = toc;
%     [psnrs_HTCTV(i), ssims_HTCTV(i), fsims_HTCTV(i), ergas_HTCTV(i), sams_HTCTV(i)] = HSI_QA(X * 255, Xhat_HTCTV * 255);
%     Xhat{methods_index}=Xhat_HTCTV;
%     div{methods_index}=1-abs((X-Xhat_HTCTV));
%     methods_index = methods_index+1;
% 
%     %% Method 4: CTCTV  Enhanced Cauchy
%     disp('......Run CTCTV......')
%     opts = [];
%     opts.rho = 1.25;
%     opts.directions = [1,2,3]; % consider the lowrankness and smoothness both along the spatial and spectral directions
%     opts.tau_F=[tau_1 tau_1, tau_1];
%     opts.tauL1=tau_2;
%     tic
%     Xhat_CTCTV = CTCTV_TRPCA(Xn, opts);
%     times_CTCTV(i) = toc;
%     [psnrs_CTCTV(i), ssims_CTCTV(i), fsims_CTCTV(i), ergas_CTCTV(i), sams_CTCTV(i)] = HSI_QA(X * 255, Xhat_CTCTV * 255);
%     Xhat{methods_index}=Xhat_CTCTV;
%     div{methods_index}=1-abs((X-Xhat_CTCTV));
%     methods_index = methods_index+1;
% 
%     %% Method 5: WTCTV  Enhanced Welsch
%     disp('......Run WTCTV......')
%     opts = [];
%     opts.rho = 1.25;
%     opts.directions = [1,2,3]; % consider the lowrankness and smoothness both along the spatial and spectral directions
%     opts.tau_F=[tau_1 tau_1, tau_1];
%     opts.tauL1=tau_2;
%     tic
%     Xhat_WTCTV = WTCTV_TRPCA(Xn, opts);
%     times_WTCTV(i) = toc;
%     [psnrs_WTCTV(i), ssims_WTCTV(i), fsims_WTCTV(i), ergas_WTCTV(i), sams_WTCTV(i)] = HSI_QA(X * 255, Xhat_WTCTV * 255);
%     Xhat{methods_index}=Xhat_WTCTV;
%     div{methods_index}=1-abs((X-Xhat_WTCTV));
%     methods_index = methods_index+1;%% Method 6: GTCTV  Enhanced General lossdisp('......Run GTCTV......')opts = [];opts.rho = 1.25;opts.directions = [1,2,3]; % consider the lowrankness and smoothness both along the spatial and spectral directionsopts.tau_F=[tau_1 tau_1, tau_1];opts.tauL1=tau_2;General_option = 2;% 2 for Enhanced Geman-McClure loss% 1 for Enhanced Cauchy lossticXhat_GTCTV = GTCTV_TRPCA(Xn, opts ,General_option);times_GTCTV(i) = toc;[psnrs_GTCTV(i), ssims_GTCTV(i), fsims_GTCTV(i), ergas_GTCTV(i), sams_GTCTV(i)] = HSI_QA(X * 255, Xhat_GTCTV * 255);Xhat{methods_index}=Xhat_GTCTV;div{methods_index}=1-abs((X-Xhat_GTCTV));methods_index = methods_index+1;%     fprintf('\n %d-th image, TCTV   psnr=%.4f, ssim=%.4f, fsim=%.4f\n',i, psnrs_TCTV(i),ssims_TCTV(i),fsims_TCTV(i));
%     fprintf('\n              FTCTV  psnr=%.4f, ssim=%.4f, fsim=%.4f\n',   psnrs_FTCTV(i),ssims_FTCTV(i),fsims_FTCTV(i));
%     fprintf('\n              HTCTV  psnr=%.4f, ssim=%.4f, fsim=%.4f\n',   psnrs_HTCTV(i),ssims_HTCTV(i),fsims_HTCTV(i));
%     fprintf('\n              CTCTV  psnr=%.4f, ssim=%.4f, fsim=%.4f\n',   psnrs_CTCTV(i),ssims_CTCTV(i),fsims_CTCTV(i));
%     fprintf('\n              WTCTV  psnr=%.4f, ssim=%.4f, fsim=%.4f\n',   psnrs_WTCTV(i),ssims_WTCTV(i),fsims_WTCTV(i));
%     fprintf('\n              GTCTV  psnr=%.4f, ssim=%.4f, fsim=%.4f\n',   psnrs_GTCTV(i),ssims_GTCTV(i),fsims_GTCTV(i));psnrs_i=[psnrs_TCTV(i),psnrs_FTCTV(i),psnrs_HTCTV(i),psnrs_CTCTV(i),psnrs_WTCTV(i),psnrs_GTCTV(i)];ssims_i=[ssims_TCTV(i),ssims_FTCTV(i),ssims_HTCTV(i),ssims_CTCTV(i),ssims_WTCTV(i),ssims_GTCTV(i)];  ergas_i=[ergas_TCTV(i),ergas_FTCTV(i),ergas_HTCTV(i),ergas_CTCTV(i),ergas_WTCTV(i),ergas_GTCTV(i)]; disp(['PSNR_i=       ',num2str(psnrs_i)])  disp(['SSIM_i=       ',num2str(ssims_i)])disp(['ERGAS_i=       ',num2str(ergas_i)])%     Orig_Multi{i}=X;Noisy_Multi{i}=Xn;TCTV_Multi{i}=Xhat_TCTV;FTCTV_Multi{i}=Xhat_FTCTV;HTCTV_Multi{i}=Xhat_HTCTV;
%     j=1;
end
methodName={'TCTV','FTCTV','HTCTV','CTCTV','WTCTV','GTCTV'};
enList=[1,2,3,4,5,6];
psnrs_all=[psnrs_TCTV,psnrs_FTCTV,psnrs_HTCTV,psnrs_CTCTV,psnrs_WTCTV,psnrs_GTCTV]; 
psnrs_mean=mean(psnrs_all,1);
ssims_all=[ssims_TCTV,ssims_FTCTV,ssims_HTCTV,ssims_CTCTV,ssims_WTCTV,ssims_GTCTV];
ssims_mean=mean(ssims_all,1);
fsims_all=[fsims_TCTV,fsims_FTCTV,fsims_HTCTV,fsims_CTCTV,fsims_WTCTV,fsims_GTCTV]; 
fsims_mean=mean(fsims_all,1);
ergas_all=[ergas_TCTV,ergas_FTCTV,ergas_HTCTV,ergas_CTCTV,ergas_WTCTV,ergas_GTCTV]; 
ergas_mean=mean(ergas_all,1);
times_all=[times_TCTV,times_FTCTV,times_HTCTV,times_CTCTV,times_WTCTV,times_GTCTV]; 
times_mean=mean(times_all,1);C{iter} = {psnrs_mean, ssims_mean, fsims_mean, ergas_mean, tau_1, tau_2};
epoch_time = toc(start_tic);
sum_time = sum_time+epoch_time;
fprintf('Progress:%d/%d. Epoch Time:%.2f. Progress Time:%.2f. Time needs:%.2f.\n',iter,sum_iter,epoch_time/60,sum_time/60,((sum_time)/iter)*(sum_iter-iter)/60);
iter = iter+1;
end
end%% Show results 
showHSIResult(Xhat,X,Xn,div,methodName,enList,31,31);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/40108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI 向少部分用户推出 GPT-4o(S2S)模型;Meta 发布 3D Gen AI 模型丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

题目汇总三

Question One 函数应用 import java.util.Arrays;public class Main{public static void main(String[] args){String s1 "you are a student";String s2 "you are a ";// 判断前缀if(s1.startsWith(s2)){System.out.println("\"" s1 &…

【Python】基于动态规划和K聚类的彩色图片压缩算法

引言 当想要压缩一张彩色图像时&#xff0c;彩色图像通常由数百万个颜色值组成&#xff0c;每个颜色值都由红、绿、蓝三个分量组成。因此&#xff0c;如果我们直接对图像的每个像素进行编码&#xff0c;会导致非常大的数据量。为了减少数据量&#xff0c;我们可以尝试减少颜色…

Redis理解【精细】【快速上手】

目录 1. 了解3V和3高 2.什么是redis 3. redis可以做什么 4. Windows安装 5. 使用redis客户端操作redis 5.1 redis基本命令 5.1.1 切换数据库 5.1.2 查看当前数据库的大小 5.1.3 查看当前数据库所有的key ​​​​​​​ 5.1.4 清空当前数据库所有key 5.1.5 清空所…

Element 的 el-table 表格实现单元格合并

html 部分 <template><div class"index-wapper"><el-table :data"tableData" :span-method"objectSpanMethod" border><el-table-column v-for"(item, index) in tableHeader" :key"index" :prop&quo…

vue中使用amis(做管理后台渲染器)

0.导入amis sdk 在github上下载 sdk.tar.gz&#xff1a;https://github.com/baidu/amis/releases 若网速不行&#xff0c;github下载不下来&#xff0c;可以这样&#xff1a; yarn add amis&#xff0c;然后在 node_modules\amis\sdk 目录里就能找到相关资源 public/index.…

Android Studio上传新项目到Gitee

一、在Gitee上创建仓库 首先需要再Gitee上创建仓库 1、在Gitee中新建仓库 2、输入仓库信息 3、生成仓库地址 创建成功会生成一个仓库地址&#xff0c;格式如下&#xff1a; https://gitee.com/test/compose_mvi_demo.git二、Android Studio 上传项目到Gitee 1、在Android …

全局优化与目标优化的异同

从porgo和optimtool的使用来解释 在多模态问题中&#xff0c;多数全局优化算法是通过设置跳跃局部最优点的比率来完成全局最优的搜索&#xff0c;这类算法需要利用到一阶梯度的局部信息&#xff0c;以至于演进方向的分叉导致了算法的执行复杂度按照搜索次数倍增。首先&#xf…

微信小程序转发朋友圈详细教程

微信小程序转发朋友圈功能&#xff0c;官方说的很官方&#xff0c;容易踩坑 官方链接戳这里 想分享朋友圈必须要分享好友 onShareTimeline() { } 想要生效必须先定义 onShareAppMessage() { } /*** 用户点击右上角分享*/onShareAppMessage() { },onShareTimeline() { } 简单…

不锈钢酸退作业区冷线氮氧分析仪采样系统优化改造

不锈钢酸退作业区冷线氮氧分析仪采样系统优化改造 一、项目提出前状况: (一)不锈钢酸退作业区酸洗线脱氮系统使用的废气监测仪器氮氧分析仪属于环保设备,数据检测的准确性直接影响环保指标,因此一旦数据检测有误,势必会引起环保事件。脱氮系统是将酸洗过程中产生的酸雾通…

一维信号全变分(TV)降噪方法(MATLAB)

信号降噪一直是领域研究的热点&#xff0c;这是一项十分有意义并且极具挑战性的工作&#xff0c;经过几十年来相关科研人员的共同努力&#xff0c;降噪技术得到了极大的发展&#xff0c;并在现实生活中也得到了广泛的应用。其中&#xff0c;许多常用的方法有&#xff1a;小波变…

深入Django(三)

Django视图&#xff08;Views&#xff09;详解 引言 在前两天的博客中&#xff0c;我们介绍了Django的基本概念和模型系统。今天&#xff0c;我们将深入探讨Django的视图&#xff08;Views&#xff09;&#xff0c;它们是处理用户请求和返回响应的地方。 什么是Django视图&a…

Golang 单引号、双引号和反引号的概念、用法以及区别

在 Golang&#xff08;Go 语言&#xff09;中&#xff0c;单引号 ()、双引号 (") 和反引号 () 用于不同类型的字符串和字符表示。以下是它们的概念、用法和区别&#xff1a; 1. 单引号 () 概念 单引号用于表示 字符&#xff08;rune 类型&#xff09;。一个字符表示一个…

免费最好用的证件照制作软件,一键换底+老照片修复+图片动漫化,吊打付费!

这款软件真的是阿星用过的&#xff0c;最好用的证件照制作软件&#xff0c;没有之一&#xff01; 我是阿星&#xff0c;今天要给大家安利一款超实用的证件照工具&#xff0c;一键换底&#xff0c;自动排版&#xff0c;免费无广告&#xff0c;让你在家就能轻松搞定证件照&#…

尚玩助手短视频看广告app开发

尚玩助手短视频看广告app的开发涉及多个关键步骤和考虑因素。以下是其主要开发流程&#xff1a; 需求分析和规划&#xff1a; 确定目标用户群体和市场定位。 收集和分析竞争对手的数据和特点&#xff0c;了解市场上已有的短视频app的优缺点。 确定尚玩助手短视频app的功能和特…

搭建知识付费系统的技术框架与实现路径

知识付费系统已经成为内容创作者和企业变现的重要工具。要成功搭建一个高效、稳定、用户体验良好的知识付费系统&#xff0c;明确技术框架和实现路径至关重要。本文将详细解析搭建知识付费系统的技术框架&#xff0c;并提供具体的实现路径和相关技术代码示例。 一、知识付费系…

C++之程序流程结构

C/C支持最基本的三种程序运行结构&#xff1a;顺序结构、选择结构、循环结构 顺序结构&#xff1a;程序按顺序执行&#xff0c;不发生跳转选择结构&#xff1a;依据条件是否满足&#xff0c;有选择的执行相应功能循环结构&#xff1a;依据条件是否满足&#xff0c;循环多次执行…

测试图片上传功能,使用postman提供的url

是不是有时候想要测试图片上传功能&#xff0c;但是没有后台url进行测试&#xff0c;这时候就可以使用postman提供的url&#xff1a; https://postman-echo.com/post接下来&#xff0c;我将教你在postman中&#xff0c;用该url测试图片上传功能。 1.发送图片上传请求 第一步…

Character.ai因内容审查流失大量用户、马斯克:Grok-3用了10万块英伟达H100芯片

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 1、爆火AI惨遭阉割&#xff0c;1600万美国年轻人失恋&#xff1f;Character.ai被爆资金断裂 美国流行的社交软件Character.ai近期对模型进行大幅度内容审查&#xff0c;导致用户感到失望并开始流失。…

12. Revit API: Document、Element

12. Revit API: Document、Element 前言 还是先讲一下Document吧&#xff0c;不然Selection不好讲&#xff0c;那涉及到了挺多东西的&#xff0c;比元素&#xff08;Element&#xff09;和各类Filter&#xff0c;这些都与Document有关&#xff0c;所以先简单讲一下这个。 一、…