查看: 174|回復: 1|關注: 0
打印 上一主題 下一主題

奇迹觉醒结婚值得吗: [已答復] 如何調用excel表中的點做運算

[復制鏈接]

新手

5 麥片

財富積分


奇迹觉醒女神之光 www.mhotr.icu 050


1

主題

7

帖子

0

最佳答案
跳轉到指定樓層
1#
發表于 2019-5-27 21:55:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求助,現在我的excel表格里有九百多個點的坐標,現在想求這些點到一條直線的距離,直線已經確定就是Q1和Q2兩點確定的直線,我現在可以計算某一個點到這個直線的距離,但是如何把excel表里的每個點都算出來呢,應該是用xlread加for循環,但是我不太會,求幫忙!Q1=[0.022987 -120.0267 0.53618];Q2=[0.040454 0.34023 0.53372];
P=[17.53433065        -1.135645645        38.81931366];
d = norm(cross(Q2-Q1,P-Q1))/norm(Q2-Q1)


缸體1.xlsx

48.59 KB, 下載次數: 0

這個就是九百多個空間點的坐標點

論壇優秀回答者

5

主題

1462

帖子

409

最佳答案
  • 關注者: 121
2#
發表于 2019-5-28 08:17:06 | 只看該作者
你這不是已經對算法有思路了么,照著執行就是了
  1. data00 = xlsread('缸體1.xlsx', 'Sheet1', 'A1:C900'); % 自己根據文件修改
  2. for ii = 1:1:size(data00,1)
  3.     P = data00(ii,:);
  4.     d(ii) = norm(cross(Q2-Q1,P-Q1))/norm(Q2-Q1);
  5. end
復制代碼

或者直接用arrayfun代替循環
  1. d = arrayfun(@(ii) norm(cross(Q2-Q1,data00(ii,:)-Q1))/norm(Q2-Q1),[1:1:size(data00,1)] );
復制代碼

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

關閉

站長推薦上一條 /4 下一條

快速回復 奇迹觉醒女神之光 返回列表